首页 > 代码库 > 算法学习之希尔排序的简洁实现
算法学习之希尔排序的简洁实现
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)
算法学习之希尔排序的简洁实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。