引言

  排序算法是數(shù)據(jù)結(jié)構(gòu)和算法之中的基本功,無論是在筆試還是面試,還是實際運用中都有著很基礎的地位。這不正直七月,每年校招的備戰(zhàn)期,所以想把常見的排序算法記錄下來。在本篇文章中的排序算法使用 JavaScript 實現(xiàn)。

 一、 冒泡排序

  冒泡排序是排序算法中最簡單的一個算法,其優(yōu)點是易理解,易實現(xiàn)。在一些對性能要求不高且數(shù)據(jù)量不大的需求中,冒泡排序是一個很好的選擇。

  原理:假設排序順序為增序,數(shù)組長度為 N。數(shù)組每相鄰兩個元素進行比較,大數(shù)后移,小數(shù)前移,第一輪排序下來就能找到最大的數(shù)。也就是比較 A[i] 和 A[i+1] ,將大數(shù)后移,隨后增加 i 的值,再進行比較。第二輪再對剩余的 N-1 個數(shù)進行排序,找出第二大的數(shù),以此類推。同時也可以記錄交換次數(shù)來進行優(yōu)化,如果在一層循環(huán)之中交換次數(shù)為 0,則排序結(jié)束。

  下面這張圖展示了冒泡排序的全過程:

iOS培訓,Swift培訓,蘋果開發(fā)培訓,移動開發(fā)培訓

  下面這張圖展示冒泡排序在宏觀層面的全過程:

  iOS培訓,Swift培訓,蘋果開發(fā)培訓,移動開發(fā)培訓

<bdo id="y4yxv"></bdo>
<fieldset id="y4yxv"></fieldset>

平均時間復雜度最優(yōu)時間負復雜度最壞時間復雜度空間復雜度

網(wǎng)友評論