思路:把陣列按gap步長分組,之後將每組資料從小到大排序,遍歷一次之後將gap/2,繼續排序,直到gap=1,排序結束.時間複雜度為:o(n^(1.3—2)),因此shell排序較插入排序有著更好的效能.using system;
namespace shell排序
; shellsort(arr);
console.readkey();
}public static void shellsort(int array)
console.writeline("gap=", gap);
foreach (int n in array)
console.write(" ", n);
console.writeline();
gap = gap / 2;}}
}}
插入排序 shell排序
shell排序 這個系列是回顧之前所學,是用python商量著完成的。路過的大佬就當看個樂,實現演算法的方式不一,也有討巧的做法。我只講講我的思路,希望大家瀏覽的時候能多多提建議,共同學習共同進步。shell排序基本思想 shell是插入排序的一種高效改進版本,shell排序是不穩定排序演算法,該演...
排序 插入排序(python版)
直接插入排序的演算法思路 1 設定監視哨r 0 將待插入紀錄的值賦值給r 0 2 設定開始查詢的位置j 3 在陣列中進行搜尋,搜尋中將第j個紀錄後移,直至r 0 key r j key為止 4 將r 0 插入r j 1 的位置上。def insert sort l for i in range le...
Shell排序(改良的插入排序)
shell排序演算法最初是由d.l shell於1959年提出,假設要排序的元素有n個,則每個進行插入排序是並不是所偶的元素同時進行,而是去一段間隔。shell首先將間隔設定為n 2,然後跳躍的進行插入排序,再來將間隔設定為n 4,跳躍進行排序動作,再來設定時間間隔為n 8 n 16,知道間隔為1之...