3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
只有幾個(gè)項(xiàng)目=> INSERTION SORT
項(xiàng)目大多已經(jīng)排序=> INSERTION SORT
關(guān)注最壞情況=> HEAP SORT
對(duì)平均案例結(jié)果感興趣=> QUICKSORT
物品來(lái)自密集的宇宙=> BUCKET SORT
希望編寫(xiě)盡可能少的代碼=> INSERTION SORT

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
timsort
Timsort是“一種適應(yīng)性,穩(wěn)定,自然的融合”,具有“ 在多種部分有序陣列上的超自然表現(xiàn)(需要少于1g(N?。┑谋容^,以及少于N-1)”。Python的內(nèi)置sort()
已經(jīng)使用這個(gè)算法一段時(shí)間了,顯然效果很好。它專(zhuān)門(mén)用于檢測(cè)和利用輸入中部分排序的子序列,這些子序列通常出現(xiàn)在真實(shí)數(shù)據(jù)集中。在現(xiàn)實(shí)世界中通常情況下,比較比在列表中交換項(xiàng)目要昂貴得多,因?yàn)橥ǔV皇墙粨Q指針,這通常使得timsort成為一個(gè)很好的選擇。但是,如果您知道您的比較總是非常便宜(例如,編寫(xiě)玩具程序以對(duì)32位整數(shù)進(jìn)行排序),則存在其他可能表現(xiàn)更好的算法。利用timsort的最簡(jiǎn)單方法當(dāng)然是使用Python,但由于Python是開(kāi)源的,你也可以借用代碼?;蛘撸厦娴拿枋霭銐虻募?xì)節(jié)來(lái)編寫(xiě)您自己的實(shí)現(xiàn)。
添加回答
舉報(bào)