几种常见的算法 和 几种常用的排序算法 (3)

快速排序希尔排序堆排序直接选择排序不是稳定的排序算法,而基数排序冒泡排序直接插入排序、折半插入排序、归并排序是稳定的排序算法

稳定排序:假设在待排序的文件中,存在两个或两个以上的记录具有相同的关键字,在用某种排序法排序后,若这些相同关键字的元素的相对次序仍然不变,则这种排序方法是稳定的。

1. 冒泡排序: 2个相邻的数逐一比较, 保持着大的始终在后面的原则, 直到最后都比较完 理论上会比较n*(n-1)/2次

int a[] = {1,31,12,23,5,11,7,2,4,6,8,0,21,34,1321,3};int count = sizeof(a)/sizeof(1);float tmp = a[0];int loopCount = 0;while(1) { loopCount++;for(int i = 0; i < sizeof(a)/sizeof(1)-loopCount; i++) { if(a[i] <= a[i+1]) { continue; } tmp = a[i]; a[i] = a[i+1]; a[i+1] = tmp; } if (loopCount == count) break; } for(int i = 0; i < sizeof(a)/sizeof(1); i++) { printf("%d\n", a[i]); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdwzs.html