排序算法(5)-希尔排序

来源:互联网 发布:矩阵力学的主要创立者 编辑:程序博客网 时间:2024/05/24 05:03
/* 排序算法-希尔排序 */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;          // 缩减增量    }}
0 0
原创粉丝点击