資料結構與演算法 氣泡排序

2022-09-04 19:24:11 字數 668 閱讀 9553

氣泡排序是通過比較兩個相鄰元素的大小實現排序,如果前乙個元素大於後乙個元素,就交換這兩個元素。這樣就會讓每一趟冒泡都能找到最大乙個元素並放到最後。

[ 8, 1, 4, 6, 2, 3, 5, 7 ]為例,對它進行氣泡排序:

}穩定性:它是指對同樣的資料進行排序,會不會改變它的相對位置。比如[ 1, 3, 2, 4, 2 ]經過排序後,兩個相同的元素 2 位置會不會被交換。氣泡排序是比較相鄰兩個元素的大小,顯然不會破壞穩定性。

空間複雜度:由於整個排序過程是在原資料上進行操作,故為 \(o(1)\) ;

時間複雜度:由於巢狀了 2 層迴圈,故為 \(o(n^2)\);

資料結構與演算法 排序 氣泡排序

兩兩相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。氣泡排序基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此...

資料結構與演算法 排序 氣泡排序

今天來學一下十大排序 首先,我們先了解下各個排序的時間複雜度 冒泡 選擇 插入 歸併 快速 希爾 堆排序屬於比較排序 在這裡,我們預設排序是從小到大排序。乙個動態演示各種排序演算法的動畫 visualgo 如果相等的兩個元素,在排序前後的相對位置保持不變,那麼這個演算法是穩定的排序演算法。比如 5 ...

資料結構與演算法 氣泡排序

氣泡排序的思想是,從前往後 或從後往前 掃瞄,每找乙個逆序對,就將它更正過來,這樣每一輪總可以找到乙個最大值或最小值。1 從前往後掃瞄,每次找到的較大值插入到後面,第一層迴圈代表當前插入位置。public static void sinksort int nums,int start,int end...