希爾排序(shell sort)

2021-07-26 05:23:40 字數 539 閱讀 1661

希爾排序是以發明者donald shell來命名的。它通過比較相距一定間隔的元素並對其排序來工作。各趟比較所用的距離隨著演算法的進行而減小,直到只比較相鄰元素的最後一趟排序為止。

初始: 9 8 7 6 5 4 3 2

以4為距離進行sort: 5 4 3 2 9 8 7 6

以2為距離進行sort: 3 2 5 4 7 6 8 9

以1為距離進行sort: 2 3 4 5 6 7 8 9

考慮極端情況,在初始狀態下直接以1為距離進行排序,則等同於插入排序。

希爾排序實現**如下:

#include

using

namespace

std;

void shellsort(int input, int n);

int main()

; shellsort(list, 8);

return0;}

void shellsort(int input, int n)}}

}

希爾排序(Shell Sort)

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

希爾排序 shellsort

希爾排序 shellsort 又叫增量遞減 diminishing increment 排序,是由d.l.shell發明的,這個演算法是通過乙個逐漸減小的增量使乙個陣列逐漸趨近於有序從而達到排序的目的。假設有乙個陣列int data 16 首先將這個增量設為16 2 8,這樣就將這個陣列分成了8個子...

希爾排序(ShellSort)

希爾排序 shellsort cpp view plain copy include shellsort.h include print.h 希爾排序,分組進行插入排序,最後一步仍然是插入排序,但是因為之前的操作使逆序數減少,所以相對單純的插入排序效率高。void shellsort inta,in...