數據排序方法的比較

總結一下不同的數據排序算法

首先,排序根據排序方式的不同分爲四大類:插入排序、選擇排序、交換排序、歸併排序

插入排序類: 直插排序      穩定         時間複雜度O(n^2)

                              希爾排序      不穩定     時間複雜度O(n^1.5)


選擇排序類: 簡單選擇排序     穩定          時間複雜度O(n^2)

                              堆排序               不穩定       時間複雜度O(nlogn)


交換排序類:冒泡排序        穩定               時間複雜度O(n^2)

                             快速排序        不穩定           時間複雜度O(nlogn)           空間複雜度O(logn)~O(n)


歸併排序類:歸併排序        穩定              時間複雜度O(nlogn)            空間複雜度O(n)


從時間複雜度來看,顯然堆排、快排、歸併要更好一些,而歸併排序犧牲了空間複雜度換取了穩定性的提升,在一些非常在乎穩定性的環境中用歸併排序是一個不錯的選擇。而在一些非常在意內存容量的環境中,幾乎沒有多佔用堆排序就顯得更好了。

相對於三種比較複雜的排序方法,如果數據量很小的話那麼冒泡排序、直插排序來的更快一些

假如說需要排序的每個數據本身非常龐大,那麼可以選擇交換次數比較少的簡單選擇排序。

不受初始數據狀態影響的排序方式有:簡單選擇排序、堆排序、歸併排序


發佈了28 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章