Eric 在電商平台賣水果,這天他收到了 9 筆訂單,訂購的數量為「17, 5, 3, 11, 16, 10, 23, 6, 8」,他想利用氣泡排序來將訂單由小排到大,請撰寫遞增氣泡排序法程式,最後輸出 
(a) 排序結果,
(b) 共需進行幾次資料的比對? 
(c) 共需進行幾次的數字交換? 
以陣列存放數列17, 5, 3, 11, 16, 10, 23, 6, 8
輸出 (a) 排序結果,(b) 共需進行幾次資料的比對? (c) 共需進行幾次的數字交換?
23 17 16 11 10 8 6 5 3 36 18
#include <iostream>
using namespace std;
int main(){
 int a[9] = {17,5,3,11,16,10,23,6,8};
 int i, j, tmp, k;
 int swap=0, comp=0;
 for(i=1; i<9; i++){
 for(j=0; j<9-i; j++){
 comp = comp + 1;
 if(a[j] < a[j+1]){
 tmp = a[j];
 a[j] = a[j+1];
 a[j+1] = tmp;
 swap = swap + 1;
 }
 }
 }
 
 for (k=0;k<9;k++)
 cout << a[k] <<" ";
 cout << endl;
 cout << comp << endl;
 cout << swap << endl;
 return 0; 
}
a = [17, 5, 3, 11, 16, 10, 23, 6, 8]
swap = 0 
comp = 0
for i in range(1, 9):
 for j in range(9-i):
 comp = comp + 1
 if a[j] < a[j+1]:
 tmp = a[j]
 a[j] = a[j+1]
 a[j+1] = tmp
 swap = swap + 1
for i in range(0,9):
 print(a[i], end=" ")
print()
print(comp)
print(swap)
| 編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 | 
| 沒有發現任何「解題報告」 | |||||