排序
_um_
time will tell
展开
-
计数排序
计数排序的特征 当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。 由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。例如:计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序排序人名。但是,计数排序可以用在基数排序中的算法来排序数据范围很大的数组。 通俗地理解,例如有 10 个年龄不同的.原创 2021-04-23 16:19:20 · 103 阅读 · 0 评论 -
快速排序的另一个版本
今天在看算法导论的时候,被这本书简洁的快排大的代码深深的折服,所以现在就让我来总结一下吧。说明:限于本人才疏学浅,所以要是有错误请多多包涵,不要拿高标准来要求我哈 首先在之前我写过一个版本的快排了,但是那个不是特别的简洁,有兴趣的朋友可以去看我的“排序算法总结”。 和上个版本一样,同样用到了分治的思想,但是,这个代码的不同之处就在于partation的部分,话不多说,先上代码 int partation(int a[], int low, int high) { int x = a[high];//主元元原创 2021-04-23 13:37:08 · 92 阅读 · 0 评论 -
快速排序
题目描述 利用快速排序算法将读入的 NN 个数从小到大排序后输出。 快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++C++ 选手请不要试图使用 STL,虽然你可以使用 sort 一遍过,但是你并没有掌握快速排序算法的精髓。) 输入格式 第 11 行为一个正整数 NN,第 22 行包含 NN 个空格隔开的正整数 a_ia i ,为你需要进行排序的数,数据保证了 A_iA i 不超过 10^910 9 。 输出格式 将给定的 NN 个原创 2021-04-11 11:25:57 · 60 阅读 · 0 评论 -
排序算法总结
一、冒泡排序 冒泡排序的关键代码如下 for (int i = n-1; i>=0; i--) { for (int j = i; j >= 0; j--) { if (p[j]>p[i]) { int temp = p[j]; p[j] = p[i]; p[i] = temp; } } } 二、希尔排序 希尔排序是插入排序的升级版本,比插排的性能更好 关键代码如下 int gap = n; int temp; while (原创 2021-04-18 16:33:53 · 71 阅读 · 0 评论