c語言希爾排序

2021-09-01 01:26:08 字數 576 閱讀 3300

#include //陣列的輸出

void output_array(int data, int n)

//交換兩個數

void swap(int *a, int *b)

//往資料裡面插入資料

void insertion_sort(int data, int n, int increment)

//希爾排序

void shellsort(int data, int n)

insertion_sort(data, n, 1);

}int main()

; //列印傳進來的陣列,除錯用,非除錯可以注釋

output_array(data, sizeof(data)/sizeof(int));//sizeof(data)/sizeof(int) 不把長度寫死,應對data傳進來的資料是可變的,下同

shellsort(data, sizeof(data)/sizeof(int));

output_array(data, sizeof(data)/sizeof(int));

return 0;

}

C語言 希爾排序

比較相隔較遠距離 稱為 增量 的數,使得數移動時能跨過多個元素,則進行一次比較就可能消除多個元素交換。d.l.shell於1959年在以他名字命名的 排序演算法中實現了這一思想。演算法先將要排序的一組數按某個 增量d分成若干組,每組中記錄的下標相差d.對每組中全部元素進行排序,然後再用乙個較小的增量...

希爾排序(c語言)

希爾排序 取乙個小於n的整數gap gap又叫做步長 通過把所有距離為gap或者gap的倍數的資料放在乙個組裡,對每乙個組進行插入排序,當每個組有序時,這整個序列就接近有序,然後減小gap,繼續上面的操作,gap越小時,預排序完畢越接近有序,當gap等於1時,預排序就相當於直接插入排序。希爾排序分為...

希爾排序 C語言

希爾排序 shell s sort 是插入排序的一種又稱 縮小增量排序 diminishing increment sort 是直接插入排序演算法的一種更高效的改進版本。希爾排序是非穩定排序演算法。該方法因d.l.shell於1959年提出而得名。主要是通過增量的步長來進行分組,然後對每一組進行直接...