4 希爾排序ShellSort

2022-04-05 04:33:15 字數 579 閱讀 7321

希爾排序是1959 年由d.l.shell 提出來的,相對直接排序有較大的改進。希爾排序又叫

縮小增量排序 

最後乙個增量必須為1才可以, 由於是跳躍式的排序 希爾排序不穩定,時間複雜度為o(n^1.5)

關鍵在於增量 的選擇 我們來通過演示圖,更深入的理解一下這個過程。

{ int step = n/2; //先按增量step n/2,n為要排序數的個數進行希爾排序

while(step>=1)

{for(int i=step;i=0 && temp=0 && temp

4 希爾排序ShellSort

希爾排序是1959 年由d.l.shell 提出來的,相對直接排序有較大的改進。希爾排序又叫 縮小增量排序 最後乙個增量必須為1才可以,由於是跳躍式的排序 希爾排序不穩定,時間複雜度為o n 1.5 關鍵在於增量 的選擇 我們來通過演示圖,更深入的理解一下這個過程。int step n 2 先按增量...

排序演算法4 希爾排序(shell sort)

希爾排序是插入排序的優化版本,實現原理 將未知數組分為以gap為間隔的n個序列 gap的初值通常取需要排序數列的長度,每次排序之後取 gap 3 1 然後將這n個序列中的數進行比較,例如先對比序列1和序列2中的第乙個數字,若序列2中的第乙個小於學列1中的第乙個則更換兩個數的位置,然後比較序列2和序列...

希爾排序(Shell Sort)

希爾排序 shell sort 又叫做縮小增量排序 diminishing increment sort 是一種很優秀的排序法,演算法本身不難理解,也很容易實現,而且它的速度很快。基本思想 先取乙個小於n的整數d1作為第乙個增量,把檔案的全部記錄分成d1個組。所有距離為dl的倍數的記錄放在同乙個組中...