排序五之希爾排序(縮小增量排序)

2021-07-09 20:01:52 字數 498 閱讀 4949



shell sort

氣泡排序演算法,選擇排序演算法和插入排序演算法的思路比較直觀,但排序的效率都比較低。對於遇到大量的資料需要排序時,shell排序便是其他更為高效的演算法之一。

sell排序演算法嚴格來說基於插入排序的思想,又稱希爾排序或縮小增量排序。shell排序的基本流程如下:

1:將有n個元素的陣列分成n/2個數字序列,第1個資料與第n/2-1個資料為一對,……以此類推;

2:一次迴圈是每個序列排好序;

3,:然後變成n/4個序列,再次排序;

4:不斷重複上述過程,隨著序列最後變為1個,也就完成了整個排序;

#include#include#include#define size 10

void shellsort(int *a,int len)

{ int i,j,k;

int r,temp;

for(r=len/2;r>=1;r/=2)

{for(i=r;i=0&&temp

希爾排序法(縮小增量法)

2016 10 25 16 51 49 首先,要明白希爾排序法是什麼。它是一種改進版的直接插入法,它是將整個無序列分割成若干小的子串行分別進行插入排序的方法。1 include23 希爾排序法 4void shell sort int a,int n 5 intmain 614 shell sort...

希爾排序增量怎麼確定 排序演算法之希爾排序

本文將介紹排序演算法中的希爾排序,它是高階版的插入排序,是我們第乙個介紹的有點難度的演算法。希爾排序,是插入排序的乙個公升級版本。在插入排序中,無論資料是怎麼分布的,依然循規蹈矩的一步一步比較,移動,插入。在希爾排序中,採用跳躍式的方式,按照某個增量gap將陣列元素分成多組序列,並使用插入排序使得各...

插入排序 C語言 希爾排序 縮小增量法

希爾排序是希爾 donald shell 於1959年提出的一種排序演算法。希爾排序也是一種 插入排序 它是簡單插入排序經過改進之後的乙個更高效的版本,也稱為 縮小增量排序 適合於資料量中等大小的排序 成千上萬的資料量 同時該演算法是衝破o n 2 的第一批演算法之一。基本思想 分割成若干個較小的子...