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

2021-09-26 21:21:23 字數 1432 閱讀 5978

氣泡排序的基本思想:序列中相鄰兩個元素兩兩比較,當乙個元素大於右邊的元素時,交換置為;否則位置不變。直到整個序列都滿足排序要求為止。

下面舉個例子進行說明,如下圖所示

故,對於一組包含n個資料的記錄,氣泡排序就是要每趟排序過程中通過兩兩比較相鄰元素,將小的數字放到前面,大的數字放在後面。氣泡排序在最壞的情況下需要進行n-1趟排序

第1趟:依次比較0和1、1和2、2和3 … (n-2) 和 (n-1)索引的元素,如果發現第1個資料大於第2個資料,交換他們,經過第1趟排序,最大的元素排到了最後;

第2趟:依次比較0和1、1和2、2和3 … (n-3) 和 (n-3)索引的元素,如果發現第1個資料大於第2個資料,交換他們,經過第2趟排序,第二大的元素排到了倒數第二個位置;

… 以此類推

第n-1趟:比較0和1索引的元素,如果發現第1個資料大於第2個資料,交換他們,經過第n-1趟排序,第二小的元素排到了第二個位置。

氣泡排序動態示意圖如下所示

氣泡排序演算法複雜度為 o(n

2)o( )

o(n2)

**示例

#include

using

namespace std;

template

<

typename t>

//使用氣泡排序 讓陣列中的數字從小到大排序 //

void

bubblesort

(t arr,

int length)}}

}int

main()

;bubblesort

(a,10);

for(

int i =

0; i <

10; i++

) cout << a[i]

<<

" ";

cout << endl;

cin.

get();

return0;

}

執行結果

[1] 演算法與資料結構–綜合提公升篇(c++版)

[2]

[3]

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

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

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

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

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

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