首页 > 编程语言 > 详细

算法学习之希尔排序的简洁实现

时间:2017-03-17 23:06:10      阅读:221      评论:0      收藏:0      [点我收藏+]
Java 代码实现:

 1     @Test
 2     public void ShellSort(){
 3         
 4         int[] array={9,8,7,6,5,4,3,2,1};
 5         int j,temp;
 6         
 7         System.err.println(Arrays.toString(array));
 8         //gap为步长,每次取半
 9         for(int gap=array.length/2;gap>0;gap/=2){
10             for(int i=gap;i<array.length;i++){
11                 temp=array[i];
12                 //第三个循环为每个步长的分组进行排序,算法和插入排序一样
13                 for(j=i;j>=gap && temp-array[j-gap]<0;j-=gap)
14                     array[j]=array[j-gap];
15                 array[j]=temp;
16                 System.err.println(Arrays.toString(array));
17             }
18         }
19     }


算法的时间复杂度最坏为O(N2)

算法学习之希尔排序的简洁实现

原文:http://www.cnblogs.com/Camork/p/6569041.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!