氣泡排序問題理解

2021-08-15 04:35:44 字數 682 閱讀 3220

氣泡排序問題

程式實現方法:用兩層迴圈完成演算法,外層迴圈i控制每輪要進行多少次的比較,第一輪比較n-1次,第二輪比較n-2次,.......,最後一輪比較一次。內層迴圈j控制每輪i次比較相鄰兩個元素是否逆序,若逆序就交換這兩個元素。

例如有6個元素需要排序:

6 5 3 4 1 2

第一輪排序,比較5次,結束後,6到了最後乙個;然後進行第二輪排序,比較4次,將5移動到倒數第二個,以此類推,總共進行5次排序,比較次數逐輪減1.

ac程式

#include

using namespace std;

int a[1100]

int main()

} for(int i=0;i

cout<

return 0; }

改進得氣泡排序

對於有些資料,我們發現,不一定要n-1次才能排完。例如1 5 2 3 4 6,我們發現秩序一輪排序就可以將整個序列排完,於是我們設計乙個bool變數,判斷是否有進行交換,如果沒有交換,說明已經排序完成,進而減少幾輪排序。

程式實現:

bool ok;

for(int i=n-1;i>=1;1--)

} if(ok==true)

break;                                        // 沒有交換就退出 }

理解 氣泡排序 快速排序

練習 second text hao long 片.建立乙個結構體,用來儲存姓名和分數 typedef student student intmain for int i 0 i num 1 i for int i 0 i num i getchar getchar 用來暫停程式,以便檢視程式輸出的...

氣泡排序的理解

int temp 作為交換媒介 for int i 0 i a.length i 外層迴圈 啟動內層迴圈,並改變內層迴圈次數限制。內層迴圈 比較 交換相鄰的兩個數,比較次數是陣列裡的資料個數減1。理解 假設陣列a裡有5個數。第一層迴圈會迴圈5次,也就是啟動5次第二層迴圈,同時每次都將改變第二層迴圈限...

氣泡排序的理解

什麼是氣泡排序,就是兩個相鄰元素之間進行比較,然後較大的數字交換到右邊。設定乙個陣列arr 1,5,3,7,6,8,4,2 先進行第一輪比較 for let i 0 i1 i i 0 arr 0 arr 1 較大的是5 不交換位置 此時順序 1,5,3,7,6,8,4,2 i 1 arr 1 arr...