五種內部排序演算法效能比較 C

2021-08-21 21:03:51 字數 1377 閱讀 2531

**五種內部排序演算法效能比較 **

1.直接插入排序演算法

將乙個待排序的記錄插入到若干個已排好序的有序記錄中的適當位置,從而得到乙個新的、記錄數增加1的有序資料序列,直到插入完成。在最開始,整個有序資料序列只有乙個資料,當全部資料插入完畢後,整個資料序列有序,並且在最後乙個資料插入有序資料序列之前,每乙個資料所在位置都不一定是最終位置,只能夠是相對最終位置。

2.簡單選擇排序

選擇類排序的核心是「選擇」,即每一趟排序都選擇出最大(或最小)的記錄,把它和整個資料序列中的最後乙個(或者第乙個)資料交換,這樣最大(或最小)的記錄到達其最終位置,如此迴圈,直到每乙個資料都被選擇一次和交換一次後,整個資料序列變為有序序列。

3.希爾排序

希爾排序又叫縮小增量排序,其本質還是插入排序,只不過是將幾個待排序的序列按某種規則分成幾個子串行,分別對這幾個子串行進行直接插入排序。這個規則就是增量,前面講到過,直接插入排序適用於序列基本有序的情況,希爾排序的每趟序列都會使整個序列更加有序,等整個序列有序了再來一趟直接插入排序,這樣會使排序效率更高,這就是希爾排序的思想[7]。

4.歸併排序

所謂歸併就是將兩個或者兩個以上的有序序列合併為乙個新的有序序列,歸併類排序就是基於這種思想。二路歸併就是每次將兩個有序序列合併為乙個有序序列[4]。

5.快速排序

快速排序是「交換」類的排序,其核心是「交換」,每一趟排序,都是通過一系列的交換動作完成的,讓乙個記錄到達它的最終位置,一趟快速排序是以乙個「樞軸」為中心[1],將序列分成兩部分,樞軸的一邊全是比它小(或者是小於等於)的,另一邊全是比它大(或者是大於等於)的[2]。

程式演示圖

一萬資料量排名

二萬資料量排名

五萬資料量排名

十萬資料量排名

二十萬資料量排名

本程式提供上述五種內部排序的效能比較

9種常見內部排序演算法的效能比較

在寫完這9種常見的內部排序演算法後總覺得需要把它們拿出來好好比較一番,看看各個演算法的效能優劣。我們先來看看這九種排序演算法的時間複雜度 空間複雜度和穩定性 看完了各個排序演算法的理論效能後,再來看一看在實踐上的效能。在程式裡,隨機數的範圍為0 49999999 進行10次外迴圈,每一趟外迴圈裡生成...

《面試之排序演算法效能比較》

效能穩定 平均時間複雜度為 o nlogn 最好時間複雜度為 o nlogn 最壞時間複雜度為 o nlogn 核心思想 1 分 只要可以分,就可以將list中的元素分成兩半,直到不能分則跳出 2 比 對於傳入兩個list,則要比較排序,則為了提高效率,輸入為有序list,3 合 對於輸入兩個有序的...

各種內排序演算法效能比較

各種內排序演算法效能比較 個人總結 穩定性最好情況 最壞情況 平均空間複雜度 確定最終位置 簡單選擇排序 屬於選擇排序 不穩定o n n 1趟 o n n 1趟 o n n 1趟 o 1 一趟排序後能確定某個元素的最終位置 直接插入排序 穩定o n n 1趟 o n n 1趟 反向有序 o n n ...