希爾排序(Shell Sort)

2021-08-06 07:41:55 字數 650 閱讀 5017

演算法描述:也叫遞減增量排序,是插入排序的一種更高效的改進版本,其通過將待排序的數列分為幾個區域來提公升插入排序的效能。希爾排序的動態圖示如下所示:

複雜度分析:最壞時間複雜度為o(

n2) ,平均時間複雜度也為o(

nd) ,效率較低。

主要特點:

c語言描述:

#include

typedef

int elementtype;

void swap(elementtype *a, elementtype *b)

/* 原始希爾排序c語言描述 */

void shell_sort(elementtype data, int n)

}}int main() ;

shell_sort(data, 10);

return

0;}

附:更多增量序列sedgewick增量序列:

希爾排序(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...