算法学习之希尔排序的简洁实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法学习之希尔排序的简洁实现相关的知识,希望对你有一定的参考价值。
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)
以上是关于算法学习之希尔排序的简洁实现的主要内容,如果未能解决你的问题,请参考以下文章