码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-03-17 23:06:10      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:java   sort   system   shell   插入   ring   []   shel   循环   

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)

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

标签:java   sort   system   shell   插入   ring   []   shel   循环   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!