排序四 希爾排序

2021-08-13 10:01:48 字數 870 閱讀 2593

時間複雜度:最好 o(n)=o(nlogn);平均o(n)=depends on gap;最差o(n)=o(n²)

空間複雜度:o(n)=o(1)

穩定性:    不穩定

定義乙個間隔增量gap,gap小於待排序序列長度。

根據增量gap將待排序序列進行分組,對每一組進行簡單插入排序。

gap減小。若gap>=1則繼續執行步驟1,否則排序結束。

來自維基百科

現有乙個長度為10待排序陣列s:[9,1,5,3,8,7,2,4,6,0]

第一次選擇增量為gap=s.length/2,以gap=gap/2的方式縮小增量

四 希爾排序

希爾排序是一種基於插入排序的快速的排序演算法,對於大規模亂序陣列插入排序很慢,因為它之後交換相鄰的元素,因此元素只能一點一點地從陣列的一端移動到另外一端。希爾排序為了加快速度簡單地改進了插入排序,交換不相鄰的元素對陣列的區域性進行排序,並最終用插入排序將區域性有序的陣列排序。希爾排序的思想是使陣列中...

排序演算法 四 希爾排序

希爾排序是插入排序的一種優化實現,比直接插入排序演算法更高效。也是第一批演算法時間複雜度突破o n 2 的演算法之一。因 d.l.shell 於 1959 年提出而得名。希爾排序是把集合資料按下標的一定增量分組,對每組使用直接插入排序演算法排序 隨著增量的減少,集合資料越來越接近整體有序。當增量減至...

排序演算法(四) 希爾排序 增量排序

希爾排序思想 將現有資料分為d個組,在每個分組內使用直接插入排序演算法,使得整個資料段越來越有序。接著繼續將資料分組並使用直接插入排序 分組會越來越小 直到分組為1。每個分組數一般互質 時間複雜度 o n 1.3 1.5 空間複雜度 o 1 穩定性 不穩定 void shell int arr,in...