C語言之希爾排序法(4)

2021-06-29 08:02:06 字數 534 閱讀 3454

希爾排序(shellsort)是插入排序的一種 是針對直接插入排序演算法的改進演算法先將要排序的一組數按某個增量gap分成若干組,每組中記錄的下標相差gap.對每組中全部元素進行排序,然後再用乙個較小的增量對它進行,在每組中再進行排序。當增量減到1時,整個要排序的數被分成一組,排序完成。

演算法**:

//希爾排序法

void shell_sort(int *a,int len)

*(a+k+i)=temp;}}

}int _tmain(int argc, _tchar* argv)

;int len=sizeof(a)/sizeof(int);

int i;

for(i=0;iprintf("%d\t",a[i]);

shell_sort(a,len);

for(i=0;iprintf("%d\t",a[i]);

return 0;

}

C語言之氣泡排序 快速排序法 希爾排序法

眾所周知程式設計排序方法眾多而且程式的好壞就取決於演算法的使用 下面是博主現在會的幾種排序方法希望對大家有所幫助。希爾排序法 author stylle date 2020 11 14 15 52 03 lasteditors stylle lastedittime 2020 11 14 15 52...

C語言排序演算法之「希爾排序法」

演算法思想簡單描述 在直接插入排序演算法中,每次插入乙個數,使有序序列只增加1個節點,並且對插入下乙個數沒有提供任何幫助。如果比較相隔較遠距離 稱為增量 的數,使得數移動時能跨過多個元素,則進行一次比較就可能消除多個元素交換。d.l.shell於1959年在以他名字命名的排序演算法中實現了這一思想。...

希爾插入排序法 C語言

排序原理 希 爾 shell 排序 演算法 先 將要 排序 的 一組 數 按 某個 增量 d 分成 若干 組,每組 中 記錄 的 下標 相差 d 對 每組 中 全部 元素 進行 排序,然後 用 乙個 較小 的 增量 對 它 進行 再次 分組,並對 每個 新 組 重新 進行 排序。當 增量 減到 1 ...