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

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)

以上是关于算法学习之希尔排序的简洁实现的主要内容,如果未能解决你的问题,请参考以下文章

Carson带你学数据结构:希尔排序,复杂度最高的排序算法

Carson带你学数据结构:希尔排序,复杂度最高的排序算法

松松学算法之排序系列--希尔排序

小朋友学数据结构:希尔排序

视频动画 | 什么是希尔排序?

希尔排序的介绍和希尔排序基本思想以及代码实现