常見排序演算法分析

2021-09-30 04:38:22 字數 460 閱讀 6584

歸併排序,插入排序

,希爾排序,快速排序,氣泡排序,桶排序。

不同的樣本空間各種排序花費時間如圖一所示:

二、演算法效能分析

從圖中可以看出在樣本空間很大時快排和希爾排序有很高的效率,因為他們的複雜度為

nlogn

,在樣本空間很大時就體現出了優勢,但是不穩定。

就從氣泡排序的結果看,可以知道當樣本空間很小的時候,運算速度很快,隨著

n增大,其運算時間明顯增長。但是演算法穩定。

三、總結

所以在選擇排序的時候要根據樣本空間的大小和需求來選擇演算法。需求也就是對排序結果穩定性的要求。如果要求穩定、樣本空間很小,冒泡、插入排序還是很好的選擇。

四、附錄

排序**如下:

常見排序演算法的分析與實現

本文僅實現了氣泡排序 選擇排序,插入排序和快速排序,僅供參考學習。效能體驗 冒泡 選擇 插入 快排。氣泡排序 氣泡排序 最簡單的排序 穩定性 穩定 時間複雜度 o n 2 public void bubblesort int a 大的數向後移動 結束 選擇排序 公升序 選擇排序 找出最小數,然後交換...

常見排序演算法

一.選擇排序 1.概念 每次從無序的子陣列裡面選擇最小的數,放在有序區的後面 既與無序區的首元素交換 不穩定排序 時間複雜度o n 2 輔助儲存o 1 2.實現 int selection sort int a,int len len為陣列元素個數 二.氣泡排序 1.概念 重複訪問數列n 1次,每次...

常見排序演算法

1 插入排序 直接插入排序,是一種最簡單的排序方法,它的基本操作是將乙個記錄插入到已排好序的有序表中,從而得到乙個新的 記錄數增1的有序表。初始 38 65 27 76 13 i 1 13 選13為監視哨並假設為乙個有序序列 i 2 13 38 待插入元素38 13 i 3 13 38 65 待插入...