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

2021-07-23 19:29:31 字數 1245 閱讀 4814

2023年10月18日15:34:24 by:piaxiaohui

氣泡排序:是一種交換排序,它的基本思想是:兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。

氣泡排序的由來,就有些類似於水中的bubble,比較輕的bubble始終在水的底層,而較輕的bubble在水的上層;較輕的bubble會向水的上層移動,也就類似於bubble weight在比較的過程中,較輕的bubble會向上冒。

**塊語法遵循標準markdown**,例如:

@requires_authorization

#include

using

namespace

std;

//功能函式:實現陣列元素的交換功能

void swap( int a, int i , int j)

//功能函式:實現陣列的列印功能

void printarray( int a,int length)

cout

<< endl;

}//核心函式:實現氣泡排序,這裡利用乙個標誌flag來減少比較次數

//比如:比較有序的序列 2,1,3,4,5,6,7,8,9,10

//在採取了標誌位後:

// i= 0,比較9次

// i= 1,比較8次

// i= 2,比較0次,此時沒有任何資料交換,說明已經有序

void bubblesort( int a,int length)

}printarray(a,length);

}}int main();

int length = 10;

cout

<

<

0;}

執行結果:

(1) 最好的情況,也就是要排序的陣列有序,沒有資料交換

a[10]=;

需要比較的次數為:n-1次 也就是i = 0時,需要比較9次

(2) 最壞的情況,也就是要排序的陣列逆序,每一次比較都要逆序

a[10]=;

i = 0 時,要比較的次數為9次

i = 1 時, 要比較的次數為8次

…… (n-1)+(n-2)+(n-3)+…+3+2+1 = n(n-1)/2;

因此時間複雜度為:o(n2);

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

排序演算法 英語 sorting algorithm 是一種能將一串資料依照特定順序進行排列的一種演算法。排序演算法的穩定性 穩定排序演算法會讓原本有相等鍵值的紀錄維持相對次序。也就是如果乙個排序演算法是穩定的,當有兩個相等鍵值的紀錄r和s,且在原本的列表中r出現在s之前,在排序過的列表中r也將會是...

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

氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序 如從大到小 首字母從z到a 錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。這個演算法的名字由來是因為越小...

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

一 氣泡排序的定義及其理解 氣泡排序是一種交換排序,它的基本思路是 兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。氣泡排序其實很容易理解,顧名思義,我們會想到氣泡。就像水底下的魚兒嘴巴裡吐出的氣泡,越鄰近水平面上的氣泡是越大的。那如何用氣泡排序的方法對大小不一的氣泡進行排序呢?氣...