希爾排序

希爾排序

思路
1.選取希爾分割點
2.對每一段進行插入排序

import java.util.*;
public class ShellSort
{
    public static void main(String[] args){
        int[] num={2,2,4,9,11,14,8,9,1,3};
        doSort(num);
        System.out.println(Arrays.toString(num));
    }

    public static void doSort(int[] num){
        int len = num.length;
        int h=1;
        while(h<len/3){
            h=3*h+1;
        }

        while(h>0){
            for(int i=h;i<len;i+=h){
                int temp = num[i];
                int j = i-h;
                while(j>=0&&num[j]>temp){
                    num[j+h] = num[j];
                    j-=h;
                }
                num[j+h] = temp;
            }
            h=(h-1)/3;
        }
    }
}
發佈了35 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章