c语言利用索引数组排序,根据C中的索引数组对数组排序C
这个代码在这里显示了这样做的方法有两种:
的第一种方法确实使用的qsort()。在纯C,但消耗多一点记忆它
struct pair {
int distance;
int index;
};
int my_pair_compare(const void *const first, const void *const second)
{
const pair* a = (const pair*)first;
const pair* b = (const pair*)second;
if (a->distance > b->distance)
return 1;
else if (a->distance < b->distance)
return -1;
else
return 0;
}
void calculate_new_order1(int week_count, float distances[], int new_order[])
{
struct pair ab[week_count];
for (int i = 0; i
ab[i].distance = distances[i];
ab[i].index = i;
}
qsort(ab, week_count, sizeof(*ab), my_pair_compare);
for (int i=0; i
new_order[i] = ab[i].index;
}
}
秒将地图中的距离(在我的示例中)保存到地图中,然后遍历地图。一种C++方式。
void calculate_new_order2(int week_count, float distances[], int new_order[])
{
std::map ooo;
for (int week=0; week
ooo[distances[week]] = week;
}
int t = 0;
for (auto i=ooo.begin(); i!=ooo.end(); i++) {
new_order[t] = i->second;
t++;
}
}
与第二解决方案的问题是,如果你有两个“星期”同样的距离,这将失败,因为值保存到同一个地图索引。
c语言利用索引数组排序,根据C中的索引数组对数组排序C相关推荐
- mysql 查询数据库索引语句_利用SQL语句查询数据库中所有索引
本章我们就要讲解一下如何利用sql语句来查询出数据库中所有索引明细.当然了,我们可以在microsoft sql server management studio中选择"表"- & ...
- mysql5.6 函数索引_聊聊MySQL中的索引
关于MySQL中的索引使用 索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的SQL性能问题. 索引的存储分类: 1.B-Tree索引:最常见的索引类型,大部分引擎都支 ...
- mysql索引ab和ba_Mysql中的索引
索引的常见模型有哈希表.有序数组和搜索树. 哈希表:一种以 KV 存储数据的结构,只适合等值查询,不适合范围查询. 有序数组:只适用于静态存储引擎,涉及到插入的时候比较麻烦.可以参考 Java 中的 ...
- oracle 修改索引的名称,Oracle中查询索引名称,批量修改索引名称语句
在Oralce数据库数据优化过程中,对源数据表处理,原则上是做更名备份,作为被查或回退使用,所以,有修改数据表名后重新建表的操作,这样,往往也需要修改索引.主键.外键名称,方便重建,为了方便.快速生成 ...
- mysql中创建唯一索引的关键字_mysql中唯一索引的关键字是什么
mysql中唯一索引的关键字是unique index.创建唯一索引可以避免数据出现重复.唯一索引可以有多个,但索引列的值必须唯一,索引列的值允许有空值.创建唯一索引可以使用关键字UNIQUE随表一同 ...
- mysql唯一索引的关键字_mysql中唯一索引的关键字是什么
mysql中唯一索引的关键字是unique index.创建唯一索引可以避免数据出现重复.唯一索引可以有多个,但索引列的值必须唯一,索引列的值允许有空值.创建唯一索引可以使用关键字UNIQUE随表一同 ...
- oracle 视图能建索引吗,Oracle视图中建立索引注意事项.doc
Oracle视图中建立索引的注意事项 在视图上创建索引需要三个条件:一.视图必须绑定到架构.要做到这点,在?CREATE?VIEW?语句中,必须加上?WITH?SCHEMABINDING,如果是使用企 ...
- oracle 删掉索引,如何清除Oracle中无用索引
DML性能低下,其中最严重的原因之一是无用索引的存在.所有SQL的插入,更新和删除操作在它们需要在每一行数据被改变时修改大量索引的时候会变得更慢. 许多Oracle 管理人员只要看见在一个SQL 查询 ...
- mysql索引添加缓慢_mysql 中 创建索引很慢,怎么解决
引用 如题,我现在 有一张表...里面的数据大概就是 800w 条左右,当然以后也可能会更多,这个表会频繁的更新! 我现在的处理是:每次更新 都会先truncate 这张表(因为里面的数据 已经不需要 ...
- mysql普通索引自增_mysql中联合索引中的自增列的增长策略
<深入理解MySQL>中一段介绍MyISAM存储引擎中自动增长列的示例,如下 1 mysql>create table autoincre_demo2 -> (d1 small ...
最新文章
- oracle触发器高级教程
- Tomcat - 源码分析Tomcat是如何处理一个Servlet请求的
- IOS15之JSON的解析字典转模型
- 动手动脑-Java重载
- 查看oracle会话和进程_带有Oracle Digital Assistant和Fn Project的会话式UI。 第三部分,迁移到云...
- linux脚本是什么语言,Linux学习之Shell脚本语言的优势是什么?
- qTip2 精致的jQuery提示信息插件
- 超酷Loading进度条
- 驻点(稳定点,临界点,要求平滑) 极值点 拐点 保号性及证明
- 【shell】shel脚本开发-条件测试
- JS格式化输出常用格式
- Pytorch与强化学习 —— 1. 如何实现一个简单的Q Learning算法
- php中errorreporting,php中error_reporting函数用法详解_PHP教程
- 安装Snipe-IT资产管理系统
- 微信删除的聊天记录怎么恢复?2招快速解决
- 万丈高楼平地起 - 读《PHP5+MySQL网页系统开发设计》
- 吴恩达 DeepLearning 神经网络基础 第一课第三周编程题目及作业
- Java教程:RabbitMq如何开启发布手动确认模式,采用及时或异步方式确定消息是否发送到队列
- RFID防盗安全门在图书馆的应用
- 上海浦东新区计算机学校排名2015,2020上海市浦东新区初中学校排名榜单
热门文章
- Rust: Rangechar 'a'..'z' 能干什么?......待续
- Julia :where
- 【路径规划】基于matlab蚁群算法求解机器人栅格地图最短路径规划问题【含Matlab源码 1618期】
- 【钟表识别】基于matlab GUI形态学钟表识别【含Matlab源码 1351期】
- 【预测模型】基于matlab粒子群算法预测【含Matlab源码 1326期】
- 【交通标志识别】基于matlab GUI BP神经网络交通标志识别【含Matlab源码 718期】
- SPSS 相关与回归小结(图文+数据集)【SPSS 026期】
- python yield理解_python教程:迭代器,生成器与for循环机制
- 西蒙决策_西蒙的象棋因子
- 变异数分析_人工智能系统中分析变异的祸害