數(shù)據(jù)結(jié)構(gòu)和算法

快速排序

快速排序(Quicksort)是對冒泡排序的一種改進摸航。它的基本思想是:通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨立的兩部分端三,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小笤昨,然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序寸痢,整個排序過程可以遞歸進行书闸,以此達到整個數(shù)據(jù)變成有序序列。

冒泡排序

冒泡排序(Bubble Sort)亥宿,是一種計算機科學領(lǐng)域的較簡單的排序算法卸勺。它重復地走訪過要排序的數(shù)列,一次比較兩個元素烫扼,如果他們的順序錯誤就把他們交換過來曙求。走訪數(shù)列的工作是重復地進行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成映企。

選擇排序

選擇排序(Selection sort)是一種簡單直觀的排序算法悟狱。它的工作原理是每一次從待排序的數(shù)據(jù)元素中選出最小(或最大)的一個元素堰氓,存放在序列的起始位置芽淡,直到全部待排序的數(shù)據(jù)元素排完。 選擇排序是不穩(wěn)定的排序方法(比如序列[5豆赏, 5挣菲, 3]第一次就將第一個[5]與[3]交換,導致第一個5挪動到第二個5后面)掷邦。

插入排序

插入排序的基本思想是:每步將一個待排序的紀錄白胀,按其關(guān)鍵碼值的大小插入前面已經(jīng)排序的文件中適當位置上,直到全部插入完為止抚岗。
有一個已經(jīng)有序的數(shù)據(jù)序列或杠,要求在這個已經(jīng)排好的數(shù)據(jù)序列中插入一個數(shù),但要求插入后此數(shù)據(jù)序列仍然有序宣蔚,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將一個數(shù)據(jù)插入到已經(jīng)排好序的有序數(shù)據(jù)中向抢,從而得到一個新的认境、個數(shù)加一的有序數(shù)據(jù),算法適用于少量數(shù)據(jù)的排序挟鸠,時間復雜度為O(n^2)叉信。是穩(wěn)定的排序方法。插入算法把要排序的數(shù)組分成兩部分:第一部分包含了這個數(shù)組的所有元素艘希,但將最后一個元素除外(讓數(shù)組多一個空間才有插入的位置)硼身,而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成后覆享,再將這個最后元素插入到已排好序的第一部分中佳遂。

1.基本概念

1.1穩(wěn)定排序(stable sort)和非穩(wěn)定排序

穩(wěn)定排序是所有相等的數(shù)經(jīng)過某種排序方法后,仍能保持它們在排序之前的相對次序撒顿,丑罪。反之,就是非穩(wěn)定的排序凤壁。
比如:一組數(shù)排序前是a1,a2,a3,a4,a5巍糯,其中a2=a4,經(jīng)過某種排序后為a1,a2,a4,a3,a5客扎,
則我們說這種排序是穩(wěn)定的,因為a2排序前在a4的前面罚斗,排序后它還是在a4的前面徙鱼。假如變成a1,a4,a2,a3,a5就不是穩(wěn)定的了。

1.2內(nèi)排序( internal sorting )和外排序( external sorting)

在排序過程中针姿,所有需要排序的數(shù)都在內(nèi)存袱吆,并在內(nèi)存中調(diào)整它們的存儲順序侍瑟,稱為內(nèi)排序夷蚊;在排序過程中,只有部分數(shù)被調(diào)入內(nèi)存耕腾,并借助內(nèi)存調(diào)整數(shù)在外存中的存放順序排序方法稱為外排序榕暇。

1.3算法的時間復雜度和空間復雜度

所謂算法的時間復雜度蓬衡,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復雜度彤枢,一般是指執(zhí)行這個算法所需要的內(nèi)存空間狰晚。

總結(jié)

算法性能總結(jié).jpg

視覺直觀感受 7 種常用的排序算法

技術(shù)面試寶典: 很全面的算法和數(shù)據(jù)結(jié)構(gòu)知識(含代碼實現(xiàn))

麻省理工學院公開課:算法導論

Objective-C實現(xiàn)常用的4種排序算法

C語言實現(xiàn)4種常用排序

白話經(jīng)典算法系列之六 快速排序 快速搞定

八大排序算法

菜鳥教程排序算法總結(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市缴啡,隨后出現(xiàn)的幾起案子壁晒,更是在濱河造成了極大的恐慌,老刑警劉巖业栅,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秒咐,死亡現(xiàn)場離奇詭異谬晕,居然都是意外死亡,警方通過查閱死者的電腦和手機携取,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門攒钳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人歹茶,你說我怎么就攤上這事夕玩。” “怎么了惊豺?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵燎孟,是天一觀的道長。 經(jīng)常有香客問我尸昧,道長揩页,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任烹俗,我火速辦了婚禮爆侣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘幢妄。我一直安慰自己兔仰,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布蕉鸳。 她就那樣靜靜地躺著乎赴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪潮尝。 梳的紋絲不亂的頭發(fā)上榕吼,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音勉失,去河邊找鬼羹蚣。 笑死,一個胖子當著我的面吹牛乱凿,可吹牛的內(nèi)容都是我干的顽素。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼徒蟆,長吁一口氣:“原來是場噩夢啊……” “哼戈抄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起后专,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤划鸽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裸诽,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡嫂用,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丈冬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘱函。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖埂蕊,靈堂內(nèi)的尸體忽然破棺而出往弓,到底是詐尸還是另有隱情,我是刑警寧澤蓄氧,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布函似,位于F島的核電站,受9級特大地震影響喉童,放射性物質(zhì)發(fā)生泄漏撇寞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一堂氯、第九天 我趴在偏房一處隱蔽的房頂上張望蔑担。 院中可真熱鬧,春花似錦咽白、人聲如沸啤握。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽排抬。三九已至,卻和暖如春三妈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背莫绣。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工畴蒲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人对室。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓模燥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親掩宜。 傳聞我的和親對象是個殘疾皇子蔫骂,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

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