排序算法(C实现)------- 希尔排序
来源:互联网 发布:美国非农数据何时公布 编辑:程序博客网 时间:2024/04/29 09:58
希尔排序的思想是按照一个递减的方法进行排序,其本质是分组插入排序,举例:如有9个待排序数,取初始步长为5,按照5,3,1 的递减顺序进行排序,每一轮即将位置1和位置6,位置2和位置7,位置3和位置8,位置4和位置9进行排序;第二轮步长为3,则将位置1,4,7,位置2,5,8,位置3,6,9分别进行排序;第三轮则步长为1,则和一般的排序一样,不过经过前两轮,数据已局部有序,故可以采用交换次数少的冒泡排序,当然了其他的排序也可以。
代码如下:
//step为初始步长,取奇数void shell_sort(ElemType array[],int length,int step){int inner,outer,median;int i,j;if(array == NULL || length == 0)exit(0);//步长每次减2,直到变为1for(; step >= 1; step-=2){for(i = 0; i < step; i++){//取出最后一个元素下标outer = i;while((outer + step) <= (length -1)){outer += step;}//对相应位的元素进行排序,采用冒泡排序 for(; outer >= (i + step);outer -= step){for(inner = i; inner < outer; inner += step){if(array[inner] > array[inner+step]){median = array[inner];array[inner] = array[inner+step];array[inner+step] = median;}}}}}}
0 0
- 排序算法(C实现)------- 希尔排序
- 希尔排序算法实现(C++)
- 希尔排序算法实现(C++)
- 算法实现之希尔排序(C++)
- C语言实现排序算法---希尔排序
- 排序算法之希尔排序(C语言实现)
- 算法 - 希尔排序(C)
- 排序算法系列---希尔排序(C++)
- 【算法】希尔排序C语言实现
- 实现希尔排序算法。
- 【大话数据结构&算法】希尔排序(Java/C实现源码)
- 排序算法的C语言实现-希尔排序
- 排序:希尔排序(算法)
- 经典排序算法---希尔排序(C/C#)
- 排序算法之希尔排序(C/C++)
- C 语言算法排序 希尔
- 希尔排序(C语言实现)
- 希尔排序(C语言实现)
- 微软发布.NET Framework 4.5.2
- 揭秘腾讯大数据之平台综述篇
- 老程序员的下场
- Android工程的编译过程
- Windows线程同步总结
- 排序算法(C实现)------- 希尔排序
- oracle sql优化
- 【最大流】HDU 3572
- 健趣网首轮融资即将完成
- 现货黄金点差是多少
- zoj 2405 Specialized Four-Digit Numbers
- LibGDX游戏引擎-文字绘制(TTF字库-FreeType)
- mysql not in null 子查询问题
- 鸽笼原理 小讲 【 理解 + 例题 】 更新 ing ...