【Sort】希尔排序

  希尔排序(ShellSort),缩小增量排序,使用希尔增量时最坏运行时间O(n^2),不同的增量会对运行时间产生显著影响。

  

 1 void shellsort(int *nums,int n)
 2 {
 3     int gap,i,j;
 4     int tmp;
 5     for(gap=n/2;gap>0;gap/=2)        //改变增量
 6     {
 7         for(i=gap;i<n;i++)
 8         {
 9             tmp=nums[i];
10             for(j=i;j>0;j-=gap)
11                 if(tmp<nums[j-gap])
12                     nums[j]=nums[j-gap];
13                 else
14                     break;
15             nums[j]=tmp;
16         }
17     }
18 }

 

  

posted @ 2016-12-13 21:46  wilderness  阅读(131)  评论(0编辑  收藏  举报