排序算法(5)-希尔排序
2016-06-05 11:08
190 查看
/* 排序算法-希尔排序 */ void shellSort(int *p,int count) { int d = count/2; // 初始增量,以后逐次减半 int i,j,x; // 待使用的变量 while (d >=1) { // 按照增量循环,当增量等于1的时候,排序完成 for (i = d; i < count; i++) { x = p[i]; // 获取增量分组的第二个数 j = i-d; // 在同一组内的前一个数据序号 for (;j >= 0 && x < p[j]; j-=d) { p[j+d] = p[j]; // 向后移动位置 } // 将数据放到该位置,是因为在上面for循环中j-=d,所以要先j+d,在放置数据 p[j+d] = x; } d/=2; // 缩减增量 } }
相关文章推荐
- C++实现简单的希尔排序Shell Sort实例
- 使用Java实现希尔排序算法的简单示例
- 希尔排序的算法代码
- c语言实现冒泡排序、希尔排序等多种算法示例
- C++实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- JavaScript排序算法之希尔排序的2个实例
- JavaScript希尔排序、快速排序、归并排序算法
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- java高级排序之希尔排序
- java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)
- java 中基本算法之希尔排序的实例详解
- Java排序算法总结之希尔排序
- 细致解读希尔排序算法与相关的Java代码实现
- java 数据结构基本算法希尔排序
- 小蚂蚁学习数据结构(36)——插入排序中的希尔排序
- JavaScript希尔排序、快速排序、归并排序算法
- 简单实现希尔排序
- 排序算法 java版本
- 各种排序方法java实现
- 排序算法总结