原理:
希尔排序是在插入排序的基础上进行修改,分为三步:
1.计算最大间隔
2.执行插入排序
3.缩小间隔
源代码:
public class MyShellSort {
  
	public static void Sort(int[] array)
	{
		int h =1;      //初始化时间间隔
		
		//计算最大的时间间隔
		
		while(h < array.length /3)
		{
			h = h*3 +1;
		}
		
		//插入排序
		while(h >0)
		{
			int tmp = 0;
			for(int i = h;i <array.length;i++)
			{
			    tmp = array[i];
			    int j =i;
			    while(j> h-1 && array[j-h]>tmp)
			    {
			    	array[j] =array[j-h];
			    	j-=h;
			    }
			    array[j] = tmp;
			}
			
			
			
			//减少时间间隔
			h = (h -1)/3;
		}
		
	}
}
