排序算法總結

筆試時總是會有各種排序的題層出不窮。
雖然是FE,但是面試時面試官也會經常讓你手撕個劍指offer或者是順便問問常見排序算法的時間復雜度 or 穩定性。
最近有點小心累很久沒有寫過總結。
但事實證明寫總結是讓心靜下來的一種方式~

關于各種算法的原理還有偽代碼就不贅述了~有看到大神總結的表格直接copy過來用了。



看似簡簡單單的表格,蘊含的信息量卻相當的大~
一個刷題功利性患者就從刷題的角度來對表格總結寫吧~

題型1、對時間復雜度的考察

① 給定場景,選擇最優的排序算法

考察的是各算法的最好/最壞使用場景。

插入排序
最好情況,正序有序,只需要比較n次,且不需要移動。時間復雜度為O(n)。
最壞情況,逆序有序,n個元素,每個元素都需要比較n-1次,時間復雜度為O(n^2)。

冒泡排序
最好情況,正序有序,時間復雜度為O(n);
最壞情況,逆序有序,時間復雜度為O(n^2)。

快速排序
最好情況:均勻分布,每次都將序列分為兩個部分(一般二分復雜度都與logn有關),時間復雜度為O(nlogn);
最壞情況:序列基本有序,時間復雜度為O(n^2)。

希爾排序,和步長有關

選擇排序
最好情況:正序有序,交換0次,但是每次都要找到最小元素,因而只是減少了交換次數,時間復雜度為O(n^2)

②給定場景,直接考察時間復雜度
③與初始狀態相關,比較次數,時間復雜度

比較次數和時間復雜度還是有區別的,堆排序的時間復雜度不會因為待排序序列的有序程度而改變,但是待排序序列的有序程度會影響比較次數,選擇排序每選一個輸出來數出來都要和剩余的所有數比較,這樣待排序序列的有序程度不會影響比較次數。
元素的移動次數與關鍵字的初始排列次序無關的是:基數排序
元素的比較次數與初始序列無關的是:選擇排序
元素的時間復雜度與初始序列無關的是:選擇排序、歸并排序、堆排序

題型2、考察對排序算法的理解

①給定一個數組,寫出在某種排序算法遍歷1次/n次的排列。
②給定原序列和經過N次排序后的序列,判斷最有可能是用什么算法進行排序。

這一點其實更多考察的是各排序算法進行一次排序后元素的位置。
其中,冒泡、選擇、快排、堆都是可以確定一個元素的位置的。
快排確定的是標桿元素的位置,而插入排序確定的是元素的相對位置。

題型3、對空間復雜度的考察

歸并排序空間復雜度為O(n),快排為O(logn),其余都是O(1)。

題型4、對穩定性的考察

穩定排序:冒泡排序、插入排序、歸并排序、(計數排序、桶排序、基數排序);
不穩定排序:選擇排序。、希爾排序、快速排序、堆排序。

其余題型等待后面刷題再更新~~

參考:十大經典排序算法總結(JavaScript版)
常見排序算法小結

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內容

  • 作者:大海里的太陽原文地址:http://www.cnblogs.com/wxisme/ 前言 查找和排序算法是算...
    IT程序獅閱讀 2,518評論 0 63
  • 一、概述 排序算法概念 在計算機科學與數學中,一個排序算法是將一組雜亂無章的數據按一定的規律順次排列起來的算法。排...
    簡書冷雨閱讀 1,054評論 0 0
  • 題記: 直接插入排序(穩定)-->希爾排序 : 屬于插入排序 簡單選擇排序(穩定)-->堆排序 :屬于選擇排序...
    Pitfalls閱讀 2,823評論 2 3
  • 我曾經說,只要我想寫作,任何時候我都可以坐下來寫。可不是沒有例外的時候。有時候,什么也不想寫。因為任何文字都難以表...
    思源_沈先生閱讀 377評論 0 0
  • 站在樹林中偷窺了一眼,還以為了解了全世界,好多東西等自己想起的時候,已落后了好多年!
    水至柔閱讀 251評論 0 0