這個排序演算法,其實就是乙個插入排序的改進,可以作為知識的擴充套件來學習,由於平時用的不多,所以先記錄在這裡,以後要用不至於沒有頭緒。
希爾排序在陣列中採用跳躍式分組的策略,通過某個增量將陣列元素劃分為若干組,然後分組進行插入排序,隨後逐步縮小增量,繼續按組進行插入排序操作,直至增量為1
平均情況:介於n和n*n之間
最壞情況:n*n
最好情況:n
public class shellsort ;
system.out.println("排序前陣列為:");
for(int num:arr)
sort(arr);
system.out.println();
system.out.println("排序後的陣列為:");
for(int num:arr)
} public static void sort(int arr)
}} }
public static void sort1(int arr)
arr[j] = temp;}}
} }public static void swap(int arr, int a, int b)
}
如果還不能理解的話,可以參考下面這篇部落格,講的詳實正確,生動形象,重點是有圖哦,0.0 七大排序之希爾排序
希爾排序的實質就是分組插入排序,該方法又稱 縮小增量排序 因dl shell於1959年提出而得名。該方法的基本思想是 先將整個待排元素序列分割成若干個子串行 由相隔某個 增量 的元素 組成的 分別進行直接插入排序,然後依次縮減增量再進行排序,待整個序列中的元素基本有序 增量足夠小 時,再對全體元素...
七大排序之希爾排序
希爾排序可以說是對插入排序的優化,所以又可以稱希爾排序為分組插入排序 插入排序速度快是在資料量較小且基本有序倆個條件下有效,如果資料過長且基本無序,採用希爾排序將其分解成若干組,分別做插入排序。核心 1 void shellsort int arr,int length 23 不能改成arr i 因...
七大排序演算法
氣泡排序 void bubble int a,int n 選擇排序 void select sort int a,int n n為陣列a的元素個數 將第i 小的數,放在第i 個位置 如果剛好,就不用交換 if i min index 插入排序 typedef int elementtype void...