希尔排序 九大排序算法之希尔排序算法思想排序思想代码实现import java.util.*; //希尔排序插入排序的快速排序算法使数组中任意间隔为h的元素是有序的h不断减小 //时间复杂度NlogN,空间复杂度1 public class Shell { public static void sort(Comparable[] a) { int Na.length; int h1; while(hN/3)h3*h1; while(h1) { for(int ih;iN;i) { for(int ji;jhless(a[j],a[j-h]);j-h) { exch(a,j,j-h); } } h/3; } } private static boolean less(Comparable v,Comparable w) { return v.compareTo(w)0; } private static void exch(Comparable[] a,int i,int j) { Comparable ta[i]; a[i]a[j]; a[j]t; } private static void show(Comparable[] a) { for(int i0;ia.length;i) { System.out.print(a[i] ); } System.out.println(); } public static boolean isSorted(Comparable[] a) { for(int i1;ia.length;i) { if(less(a[i],a[i-1])) return false; } return true; } public static void main(String[] args) { String[] a {3,2,4,5,7}; sort(a); assert isSorted(a); show(a); } }