常見的排序演算法(六) 希爾排序

2022-06-24 21:51:15 字數 829 閱讀 4053

希爾排序,也稱遞減增量排序演算法,是插入排序的一種更高效的改進版本。希爾排序是非穩定排序演算法。

希爾排序是基於插入排序的以下兩點性質而提出改進方法的:

步長的選擇希爾排序的重要部分。只要最終步長為1任何步長序列都可以工作。

希爾排序**如下:

1

public

static

void shellsort(int

arr)

13 arr[j + num] =tmp;14}

15 num = num >> 1;16}

17 }

希爾排序空間複雜度為o(1),最好時間複雜度為o(n),最壞o(n²),平均o(n^1.3)。

測試**:

1

public

static

void

main(string args) ;34

shellsort(arr);56

for (int

i : arr)

9 }

常見排序演算法之希爾排序

希爾排序是基於插入排序的一種改進。以下摘自文字摘自 寫的確實很好 第一塊希爾排序介紹 準備待排陣列 6 2 4 1 5 9 首先需要選取關鍵字,例如關鍵是3和1 第一步分成三組,第二步分成一組 那麼待排陣列分成了以下三個虛擬組 6 1 一組 2 5 二組 4 9 三組 看仔細啊,不是臨近的兩個數字分...

常見排序演算法 希爾(shell)排序

原理 一般,講序列分成n 2組,然後進行排序,後再分為 n 2 2組,再進行排序,以此類推。例子 63 92 27 36 45 71 58 7 分組1次 63 9227 36 45 7158 7 排序 45 7127 7 63 9258 36 分組2次 45 71 27 7 63 92 58 36 ...

常見排序演算法之希爾排序演算法

1.希爾排序簡介 1.介紹 希爾排序 shell s sort 是插入排序的一種又稱 縮小增量排序 是直接插入排序演算法的一種更高效的改進版本。希爾排序是非穩定排序演算法 2.核心思想 希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入排序演算法排序 當增量減至1時,整個檔案恰被分成一組,演算...