1. 程式人生 > 實用技巧 >氣泡排序題(程式碼)

氣泡排序題(程式碼)

輸入10個整數,按從大到小排序,使用氣泡排序法。

效果如圖:

問題分析:

讀題注意點:

1.輸入的是整數//整型變數

2.按從大到小排序

注意:

1.在內層迴圈中應該進行10-i 次比較,但是實際上的i 是從0開始的,但是之前的分析中i 的實際意義是步數,也就是從1開始的,所以在迴圈中是10-i-1=9-i 次。

2.使用陣列進行排序

3.注意元素輸入和輸出陣列的方式

思路:

1.使用雙重迴圈語句 //外層控制迴圈多少趟,內層控制每一趟迴圈的次數

2.假設n個數,那麼就要進行n-1 步,第i 步中則需要n-i 次比較

內層迴圈前後兩元素比較if (n[j] <n[j + 1])

//從大到小氣泡排序
#include <iostream>
using namespace std;
 
int main() 
{
    int n[10];
    int i, j;
    int temp;                                 //用於快取需要交換的數字
    cout << "請輸入10個整數:" << endl;
    for (i = 0; i < 10; i++) 
    {
        cin >> n[i];
    }
    cout << "---------------------------------
" <<endl; cout << "排序前:" << endl; for(i=0; i<10; i++) { cout << n[i] << " "; //此處再新增一個迴圈輸出輸入的資料 } cout << "\n"; for (i = 0; i < 9;i++) //共進行9步 { for (j = 0; j < 9 - i;j++) //在每一步進行10-i次兩兩比較 {
if (n[j] < n[j + 1]) { temp = n[j]; n[j] = n[j + 1]; n[j + 1] = temp; } } } cout << "排序後:" << endl; for (i = 0; i < 10; i++) { cout << n[i] << " "; } cout << endl; return 0
; }