希爾shell排序

2021-06-06 00:26:14 字數 499 閱讀 2639

#include #include #include typedef int type;

#define n 100000

void exchange(type a, int a, int b)

void selectionsort(type a, int n)

}void insertionsort(type a, int n)

a[j+1] = key;

}}void insertionsortinterval(type a, int start, int increment, int n)

a[j+increment] = key;

}}void shellsort(type a, int n)

}}void insertionsortnonincreasing(type a, int n)

a[j+1] = key;

}}int main()

*/}

希爾(Shell)排序

希爾 shell 排序 2 平方級時間複雜度,但當然也沒有線性排序演算法的o n 級的線性時間複雜度,對於大型資料輸入,線性演算法肯定是最佳的選擇,但對於中規模資料而言,希爾排序無疑是最佳的選擇。演算法大師knuth在他的著作 計算機程式設計藝術 給出的希爾排序的平均時間複雜度為o n 1.3 介於...

希爾排序 Shell

希爾排序的實質就是分組插入排序,該方法又稱縮小增量排序。該方法的基本思想是 先將整個待排元素序列分割成若干個子串行 由相隔某個 增量 的元素組成的 分別進行直接插入排序,然後依次縮減增量再進行排序,待整個序列中的元素基本有序 增量足夠小 時,再對全體元素進行一次直接插入排序。因為直接插入排序在元素基...

希爾排序 Shell

希爾排序 shell 1.將n個元素array 分成n 2個數字序列,第乙個資料和第n 2 1 個資料為一對,併排好順序 2.分成n 4個序列,再次排序 3.直到序列為一為止 include include include define size 10 void shellsort int a,in...