排序演算法之(1) 氣泡排序

2021-09-07 10:48:52 字數 753 閱讀 1197

氣泡排序總共進行n-1趟,每一趟掃瞄總是通過兩兩比較把大的往後放。所以第一趟即把最大數放在最後面,接著第二趟把第二大數放在倒數第二的位置………….到n-1趟完畢。此時僅僅有乙個數未排序。這個數就是最小元素。不再須要掃瞄,此時完畢對全部元素的排序。

#include

using

namespace

std;

void bubble(int

list,int n);

int main()

; bubble(a,10);

for(int i=0;i<10;i++)

cout

<"pause");//保留dos窗體

return0;}

void bubble(int

list,int n)

}}}

我們知道假設在某一趟掃瞄中沒有發生交換,這說明待排序的元素都是小的在前,大的在後,即都是有序的。那麼氣泡排序過程可在這一趟掃瞄後終止。若全部元素原本就是有序的。那麼一趟掃瞄就能夠完畢排序,即氣泡排序的最好時間複雜度為o(n).

為了推斷每一趟是否發生了交換,我們引入交換標誌exchang。初始值為0,經過一趟掃瞄後。若exchang還是0,說明此趟未發生交換。可終止排序。

void bubble2(int

list,int n)

}if(exchang==0) //本趟排序未發生交換。提前終止演算法

}}

排序演算法之(1) 氣泡排序

無論你學習哪種程式語言,在學到迴圈和陣列時,通常都會介紹一種排序演算法來作為例子,而這個演算法一般就是氣泡排序。氣泡排序 bubble sort 一種交換排序,它的基本思想是 兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。這裡實現最簡單最容易想到的一種 輔助函式 交換兩個變數 v...

1 演算法之氣泡排序

氣泡排序是一種比較容易接收的排序,它穩定而且易於實現,其主要思想如下 給定乙個隨機序列array 這裡我們為了突出演算法認為array內的元素是int型別 再給定兩個下標i,j分別用來指向兩個要比較和交換的物件,設i的初始值為0 i的含義代表著排序的輪數 讓j的初始值為1 即每次讓j從第二個位置開始...

排序演算法 1 氣泡排序

氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面二步,否則排序完成。冒...