排序算法(希尔排序)

希尔排序突破了O(n2),它的时间复杂度是O(nlog2n)

分组再排序

public insertSort(int a[],int n){

  int i,j,temp;

  int gap=n;//间隔

do{

  gap=gap/3+1;

  for(int i=gap;i<n-1;i++){

    if(a[i]<a[i-gap]){

      temp=a[i];//作为哨兵

      for(j=i-gap;k[j]>temp;j-=gap){

        k[j+gap]=k[j];

      }

      k[j+gap]=temp;

    }

  }

}while(gap>1)

}

原文地址:https://www.cnblogs.com/LvLoveYuForever/p/5744128.html