氣泡排序問題
程式實現方法:用兩層迴圈完成演算法,外層迴圈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...