排序--希尔排序

来源:互联网 发布:php评论盖楼 编辑:程序博客网 时间:2024/06/06 04:02

shellSort 又称为增量排序,间隔gap的位置组成的数组都各自排好序,再gap越来越小直到1,排好整个数组。

public static <AnyType extends Comparable<? super AnyType>>void shellSort(AnyType [] a){   int j;   for(int gap= a.length/2; gap> 0; gap/=2)      //每个间隔gap的组成的数组插入排好序      //直到gap越分越细      for(int i= gap; i< a.length; i++)      {         AnyType tmp= a[i];         for(j= i; j>= gap && tmp.compareTo(a[j-gap])< 0; j-= gap)            a[j]= a[j-gap];         a[j]= tmp;      }}

最坏的情形是花费 =N*N的次数。
希尔增量的问题在于,这些增量对未必是互素的,因此较小的增量可能影响很小。

0 0
原创粉丝点击