排序知識總結(jié)

貌似排序是在面試中經(jīng)常出現(xiàn)的問題袖订,那么我就來復(fù)習(xí)一下吧塑顺!

  1. 插入排序(insertion sort)
    含義:第i趟排序?qū)⑿蛄兄械趇+1個元素ki+1插入到一個已經(jīng)按值有序的子序列(k'1, k'2, ..., k'i)的合適位置嵌牺,得到一個長度為i+1罕伯,仍然有序的子序列(k''1, k''2, ..., k''i+1)。
    優(yōu)化:在尋找需要插入的位置時燃观,可以采用折半查找對時間復(fù)雜度進行優(yōu)化褒脯。
  • 平均時間復(fù)雜度O(n2),采用折半查找則為O(nlogn)缆毁;
  • 穩(wěn)定排序番川;
  1. 選擇排序(selection sort)
    含義:第i趟排序從序列的后n-i+1個元素中選擇一個最小的元素與該n-i+1個元素最前的元素交換位置。
  • 平均時間復(fù)雜度O(n2)脊框;
  • 不穩(wěn)定排序颁督,例如(49, 38, 49', 13),一趟排序后會變成(13, 38, 49', 49)浇雹,倆49交換了位置沉御;
  1. 泡排序(bubble sort)
    含義:比較相鄰元素,若前者較大則交換兩元素昭灵,一趟排序后最大值換到第n個位置吠裆。注意某一趟不發(fā)生元素交換時,排序完成烂完。
  • 平均時間復(fù)雜度O(n2)试疙,適用于元素基本有序的情況;
  • 穩(wěn)定排序抠蚣;
  1. 謝爾排序(Shell's sort)
    含義:又稱縮小增量排序祝旷。先確定一個間隔gap,將參加排序的序列按此間隔一次分成若干子序列嘶窄,對子序列排序怀跛,然后縮小間隔,直至gap = 1柄冲。
  • 不適用于鏈表吻谋;
  • 平均時間復(fù)雜度介于O(nlogn)和O(n2)之間,略大于O(nlogn)羊初;
  • 不穩(wěn)定排序滨溉;
  1. 快速排序(quick sort)
    含義:被認為是對泡排序的一種改進,又稱劃分排序法长赞。在當前參加排序的序列(ks, ks+1, ..., kt)中任選一個元素作為分界元素晦攒,將小于等于分界元素的所有元素都移到分界元素前面,把大于等于分界員素的所有元素移到分界元素后面得哆,這樣分界元素正好處于排序的最終位置脯颜,并把當前參加排序的序列劃分成了前后兩個子序列。
  • 平均時間復(fù)雜度:O(nlogn)贩据;
  • 不穩(wěn)定排序栋操;
  1. 堆排序(heap sort)
    含義:是對選擇排序的一種改進。建立初始堆饱亮,取堆頂元素矾芙,交換堆的第1個元素和最后1個元素,將前n-1個元素再轉(zhuǎn)換為一個堆近上,重復(fù)取堆頂?shù)倪^程剔宪。
    堆的調(diào)整方法:當把第n個元素和堆頂交換后,剩余n-1個元素除堆頂外還維持堆的特性壹无,因此將堆頂和左右孩子比較葱绒,與較大值交換,并繼續(xù)與新的左右孩子比較并進行調(diào)整斗锭。
    初始堆的建立:從最后一個非孩子節(jié)點開始進行堆的調(diào)整地淀,直至堆頂。
  • 不適用于鏈表岖是;
  • 時間復(fù)雜度:O(nlogn)帮毁;
  • 不穩(wěn)定排序;
  1. 歸并排序(merging sort)
    含義:將兩個按值有序的序列合并成一個豺撑。
  • 平均時間復(fù)雜度:O(nlogn)作箍;
  • 穩(wěn)定排序;
  1. 桶排序(Bucket sort)
    含義:將數(shù)組分到有限數(shù)量的桶子里前硫。每個桶子再個別排序(有可能再使用別的排序算法或是以遞歸方式繼續(xù)使用桶排序進行排序)胞得。
  • 主要適用于均勻分布的數(shù)字數(shù)組;
  • 最好情況下線性時間O(n);
  • 穩(wěn)定排序屹电;

總結(jié):

編號 算法 穩(wěn)定性 最差時間復(fù)雜度 平均時間復(fù)雜度 空間復(fù)雜度
1 插入排序 穩(wěn)定 O(n2) O(n2) O(1)
2 選擇排序 不穩(wěn)定 O(n2) O(n2) O(1)
3 泡排序 穩(wěn)定 O(n2) O(n2) O(1)
4 謝爾排序 不穩(wěn)定 O(n2) O(nlogn)~O(n2) O(1)
5 快速排序 不穩(wěn)定 O(n2) O(nlogn) O(1)
6 堆排序 不穩(wěn)定 O(nlogn) O(nlogn) O(1)
7 歸并排序 穩(wěn)定 O(nlogn) O(nlogn) O(n)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阶剑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子危号,更是在濱河造成了極大的恐慌牧愁,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件外莲,死亡現(xiàn)場離奇詭異猪半,居然都是意外死亡兔朦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門磨确,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沽甥,“玉大人,你說我怎么就攤上這事乏奥“谥郏” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵邓了,是天一觀的道長恨诱。 經(jīng)常有香客問我,道長骗炉,這世上最難降的妖魔是什么照宝? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮句葵,結(jié)果婚禮上硫豆,老公的妹妹穿的比我還像新娘。我一直安慰自己笼呆,他們只是感情好熊响,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诗赌,像睡著了一般汗茄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铭若,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天洪碳,我揣著相機與錄音,去河邊找鬼叼屠。 笑死瞳腌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的镜雨。 我是一名探鬼主播嫂侍,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荚坞!你這毒婦竟也來了挑宠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤颓影,失蹤者是張志新(化名)和其女友劉穎各淀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诡挂,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡碎浇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年临谱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奴璃。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡悉默,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出溺健,到底是詐尸還是另有隱情麦牺,我是刑警寧澤钮蛛,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布鞭缭,位于F島的核電站,受9級特大地震影響魏颓,放射性物質(zhì)發(fā)生泄漏岭辣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一甸饱、第九天 我趴在偏房一處隱蔽的房頂上張望沦童。 院中可真熱鬧,春花似錦叹话、人聲如沸偷遗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氏豌。三九已至,卻和暖如春热凹,著一層夾襖步出監(jiān)牢的瞬間泵喘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工般妙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纪铺,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓碟渺,卻偏偏與公主長得像鲜锚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子苫拍,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 概述 排序有內(nèi)部排序和外部排序烹棉,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進行排序,而外部排序是因排序的數(shù)據(jù)很大怯疤,一次不能容納全部...
    蟻前閱讀 5,168評論 0 52
  • 概述:排序有內(nèi)部排序和外部排序浆洗,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進行排序,而外部排序是因排序的數(shù)據(jù)很大集峦,一次不能容納全部...
    每天刷兩次牙閱讀 3,729評論 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,243評論 0 2
  • 這是一部家庭治愈系電影伏社。以一個少女左和子的視角來看待家庭關(guān)系的變化抠刺。 父親自殺未遂是整個電影的導(dǎo)火索,由于父親自殺...
    幻想家Melon閱讀 888評論 0 0
  • 一摘昌、進程間通信的概念 每個進程各自有不同的用戶地址空間速妖,任何一個進程的全局變量在另一個進程中都看不到,所以進程之間...
    TyiMan閱讀 165,948評論 16 318