排序(八) 希爾排序

2021-10-20 22:20:53 字數 672 閱讀 2071

排序(一):氣泡排序

排序(二):選擇排序

排序(三):堆排序

排序(四):插入排序

排序(五):二分搜尋

排序(六):歸併排序

排序(七):快速排序

排序(八):希爾排序

希爾排序是插入排序的一種改進,主要是為了解決當較小的資料大都出現在陣列後面時導致的移動次數明顯增多的問題,思想是使用乙個不斷縮小的增量gap將陣列元素分組,在每個分組內部先進行插入排序,當gap減少到1時整個陣列元素分在一組,最後進行一次插入排序,整個排序過程結束。

下面**沒有步長序列優化

public

class

shellsort

;sort

(array)

;for

(int i =

0; i < array.length; i++)}

private

static

void

sort

(int

arr)

for(

int gap = arr.length /

2; gap >

0; gap /=2)

} arr[j]

= tmp;}}

}}

八大排序 希爾排序

希爾排序 shell sort 是插入排序的一種。是直接插入排序的改進版,它是非穩定排序演算法。其得名於它的提出者d.l.shell,shell sort等演算法的提出打破了 排序演算法不可能突破o n 2 的魔咒,它將排序演算法的時間複雜度提成到了o nlogn 不可能超越的o n 2 徹底成為了...

八大排序 希爾排序

希爾排序 shell s sort 是插入排序的一種 又稱為 縮小增量排序 diminishing increment sort 是直接插入排序演算法的一種更高效的改進版本。希爾排序是不穩定的排序演算法。希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入排序演算法排序 隨著增量的逐漸減少,每組...

八大排序演算法 希爾排序

希爾的定義 希爾排序是插入演算法的一種,也叫縮小增量排序。是直接插入排序演算法的一種改良版。希爾演算法是把資料序列按下標的一定增量分組,對每組使用直接插入排序演算法進行排序 然後依次縮減增量再進行排序,待整個序列中的元素基本 注 沒有全部完成排序 有序時,再對全體元素進行一次直接插入排序。基本思想 ...