希尔排序

来源:互联网 发布:鲁班脚手架软件 编辑:程序博客网 时间:2024/06/05 03:53

原文链接:http://blog.csdn.net/morewindows/article/details/6668714
简单

void ShellSort(int *a,int n){    int i,j,k;    int temp;    int gap;    for(gap = n / 2;gap > 0;gap /= 2)        for(i = 0;i < gap;i++)            for(j = i + gap;j < n;j += gap)                if(a[j - gap] > a[j])                    {                        temp = a[j];                        for(k = j - gap;k >= 0 && a[k] > temp; k -= gap)                        a[k + gap] = a[k];                        a[k+ gap] = temp;                    }}

进阶

void ShellSort2(int *a,int n){    int i,j,k;    int gap;    for(gap = n / 2;gap > 0;gap /= 2)        for(i = 0;i < gap;i++)            for(j = i + gap;j < n;j += gap)                for(k = j - gap;k >= 0 && a[k + gap] > a[k];k -= gap)                    a[k + gap] = a[k];}
0 0
原创粉丝点击