排序演算法 之 希爾排序

2021-07-26 16:54:04 字數 527 閱讀 3297

希爾排序是由d.l.shell於2023年提出的,所以稱為希爾排序。希爾排序又稱縮小增量排序,是插入排序的一種改進。

基本思想:希爾排序是基於插入排序的以下特點:待排序的序列元素數量越少排序速度越快;待排序序列的元素基本有序時排序速度越快;基於以上思想將待排序序列分為多個子串行分別進行插入排序,然後減少子串行的個數重新進行插入排序,重複以上過程,直至待排序的序列只有乙個再進行一次插入排序,則排序完成序列有序。

**實現:

///

///希爾排序

//////

///public

static

void shellsort(int intarray, int

length)

if(gap==1

)

break

; }

}

需說明的是不同的間隔gap選擇會對排序的效率有不同的影響,且不容易確定最佳的間隔gap,感興趣的朋友可以搜尋相關資料作為參考。

以上就是希爾排序的內容。

排序演算法之希爾排序

希爾排序實際上是一種分治思想的插入排序。插入排序不說了,不清楚看這裡 分治思想,對增量為dk,dk遞減,開始很多小序列,最後為乙個大序列 相對直接插入排序,在希爾排序中,只不過增量不是1,而是dk 較好的增量序列是2 k 1,2 k 1 1,7,3,1,這樣可使shell排序時間複雜度達到o n 1...

排序演算法之希爾排序

希爾排序 shell sort 又稱為縮小增量排序,輸入插入排序演算法,是對直接排序演算法的一種改進。本文介紹希爾排序演算法。對於插入排序演算法來說,如果原來的資料就是有序的,那麼資料就不需要移動,而插入排序演算法的效率主要消耗在資料的移動中。因此可知 如果資料的本身就是有序的或者本身基本有序,那麼...

排序演算法之希爾排序

希爾排序,突破了 通過交換相鄰元素進行排序的任何演算法平均需要 n 2 的二次時間限制 通過比較相距一定間隔的元素來工作。使用乙個增量序列 h1 1,h2,ht,在使用乙個 增量h的一趟排序後,對於每乙個i滿足pdata i pdata i h 即此時序列是h排序的 各趟 比較所用的距離逐漸減小,直...