经典排序算法 - Cycle Sort
Cycle sort的思想与计数排序太像了,理解了基数排序再看这个会有很大的帮助,
圈排序与计数排序的区别在于圈排序只给那些需要计数的数字计数,先看完文章吧,看完再回来理解这一句话
所谓的圈的定义,我只能想到用例子来说明,实在不好描述
待排数组[ 6 2 4 1 5 9 ]
排完序后[ 1 2 4 5 6 9 ]
数组索引[ 0 1 2 3 4 ...
分类:
编程语言 时间:
2014-12-16 13:30:35
阅读次数:
219
1、题目
Given an unsorted array, find the maximum difference between the successive elements in its sorted form.
Try to solve it in linear time/space.
Return 0 if the array contains less than ...
分类:
编程语言 时间:
2014-12-15 09:00:47
阅读次数:
222
原文: 一步一步写算法(之基数排序) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 基数排序是另外一种比较有特色的排序方式,它是怎么排序的呢?我们可以按照下面的一组数字做出说明:12、 104、 13、 7、 9 (1)按个位数排序是12、1...
分类:
编程语言 时间:
2014-12-11 10:21:55
阅读次数:
204
1、计数排序如果给定上下界,并且区间不大的话,最适用。比如对于英文字母数组进行排序。时间复杂度O(n),空间复杂度O(n)void countSort(int A[], int n, int low, int high){ int size = high-low+1; vector co...
分类:
编程语言 时间:
2014-12-08 21:13:50
阅读次数:
225
OI中有很多排序算法,冒泡排序,插入排序,快速排序,基数排序,以及神一般的bogo排序等等等等。在这门不断追求速度的学科里,最快的排序方法是什么一直是信息学皇冠上的明珠。基数排序是线性的,但是却有非常大的局限性,仅仅基于比较的排序复杂度的下限是多少呢?有一天,一个人出来妖言惑众:“基于比较的排序复杂...
分类:
编程语言 时间:
2014-11-29 17:17:05
阅读次数:
249
#include//不能有相同数字int main(){ int a[100],b[100],c[100]; int n; scanf("%d",&n); for(int i=0;ia[j]) b[i]++; for(i=0;i<n;i++...
分类:
编程语言 时间:
2014-11-28 14:12:54
阅读次数:
146
计数排序的基本思想是对于给定的输入序列中的每一个元素x,确定该序列中值小于x的元素的个数。一旦有了这个信息,就可以将x直接存放到最终的输出序列的正确位置上。例如,如果输入序列中只有17个元素的值小于x的值,则x可以直接存放在输出序列的第18个位置上。当然,如果有多个元素具有相同的值时,我们不能将这些...
分类:
编程语言 时间:
2014-11-28 09:59:18
阅读次数:
165