Linux C希爾排序演算法實現

2021-08-27 03:13:26 字數 964 閱讀 4641

希爾排序(shell's sort)是插入排序的一種又稱「縮小增量排序」(diminishing increment sort),是直接插入排序演算法的一種更高效的改進版本。希爾排序是非穩定排序演算法。該方法因d.l.shell於2023年提出而得名

注:建議先學習插入排序演算法,再產學習希爾排序演算法。

時間複雜度:o(n^2)

穩定性:不穩定

測試:排序前:   6    1    4    2    5    3

排序後:  1    2    3    4    5    6

原始碼:注:shell_sort和shell_sort2分別用兩種方式實現,shell_sort2完全基於插入排序演算法。

#include #include #include #define array_n 6

int array[array_n]=;

//int array[array_n]=;

void shell_sort(int array, int n)

else

}array[k + step] = tmp;}}

}}

}void shell_sort2(int array, int n)

}if (l != j - step)

array[k + step] = tmp;}}

}}

}int show_list(int array, int n)

printf("\n");

return 0;

}int main(void)

; show_list(array, array_n);

shell_sort(array, array_n);

//shell_sort2(array, array_n);

show_list(array, array_n);

return 0;

}

實現希爾排序演算法

實驗題目 實現希爾排序演算法 實驗目的 領會希爾排序的過程和演算法設計 實驗內容 設計程式,實現希爾排序演算法。用相關資料進行測試,並 輸出各趟的排序結果。基本思想 希爾排序是針對直接插入排序演算法的改進,該方法又稱縮小增量排序。先取乙個小於n的整數d1作為第乙個增量,把檔案的全部記錄分成d1個組。...

排序演算法 python實現希爾排序

coding utf 8 希爾排序,穩定性 是不穩定的 defshell sort alist n len alist gap n 2 取步長,總長度除2,取整數 i gap for i in range gap,n i gap,gap 1,gap 2,gap 3 n 1 while if alis...

java希爾排序演算法實現

希爾排序嚴格來說是基於插入排序的思想,又被稱為縮小增量排序。具體流程如下 1 將包含n個元素的陣列,分成n 2個陣列序列,第乙個資料和第n 2 1個資料為一對.2 對每對資料進行比較和交換,排好順序 3 然後分成n 4個陣列序列,再次排序 4 不斷重複以上過程,隨著序列減少並直至為1,排序完成。假如...