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)
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |