您當前的位置:首頁 > 文化

為什麼排序演算法這麼少種,但是懂的人還是很少,明明知道要學好的呀?

作者:由 馬楚楚 發表于 文化時間:2015-03-21

為什麼排序演算法這麼少種,但是懂的人還是很少,明明知道要學好的呀?李大米2015-03-21 13:54:30

因為JAVA程式設計師太多?

為什麼排序演算法這麼少種,但是懂的人還是很少,明明知道要學好的呀?知乎使用者2015-03-21 13:58:42

因為很多語言都有自帶高效的排序演算法

為什麼排序演算法這麼少種,但是懂的人還是很少,明明知道要學好的呀?辛俊波2015-03-21 14:04:23

1、按照待排得記錄是否全部被放置到記憶體中,可以分為內排序與外排序;

2、按照是否需要輔助空間,可以分為原址排序與非原址排序

3、按照兩個相等的數排序後相對位置是否發生變化,可以分為穩定排序和不穩定排序

4、按照是否有比較的排序,可以分為基於比較的排序與非基於比較的排序,其中

基於比較的排序又可以分為:

(1)交換排序:氣泡排序、快速排序

(2)插入排序:直接插入排序、希爾排序

(3)選擇排序:簡單選擇排序、堆排序

(4)歸併排序

基於比較的時間複雜度最好是O(nlogn)

非基於比較的排序:桶排序、計數排序、基數排序

當然,這些都還只是基礎,相關變形太多了,topK問題,連結串列進行排序,多路歸併排序等。掌握其中幾種確實夠應付大多數問題了,但要每種演算法都實現過一遍,相關問題上理解就會深刻很多

為什麼排序演算法這麼少種,但是懂的人還是很少,明明知道要學好的呀?超越2015-03-22 00:49:19

快排,堆排

為什麼排序演算法這麼少種,但是懂的人還是很少,明明知道要學好的呀?知乎使用者2017-02-09 15:31:14

少? 看看CLRS 專門用了幾章來研究排序。。

標簽: 排序  基於  比較  分為  插入排序