← 回首頁

氣泡排序法 Bubble Sort

調整參數後按下「開始排序」,可選擇自動播放或分解模式逐步學習。

(5-50個)
中速
未排序
比較中
交換中
已排序

C++ 氣泡排序法參考程式

下面這段程式碼示範如何用 C++ 實作氣泡排序,和上方動畫的「比較相鄰兩個元素並交換」概念相同。

C++
#include <iostream>
#include <vector>
using namespace std;

void bubbleSort(vector<int>& arr) {
    int n = static_cast<int>(arr.size());

    for (int i = 0; i < n - 1; ++i) {
        bool swapped = false;

        for (int j = 0; j < n - 1 - i; ++j) {
            if (arr[j] > arr[j + 1]) {
                swap(arr[j], arr[j + 1]);
                swapped = true;
            }
        }

        if (!swapped) {
            break;
        }
    }
}

int main() {
    vector<int> data = {5, 1, 4, 2, 8};

    bubbleSort(data);

    cout << "排序結果: ";
    for (int x : data) {
        cout << x << " ";
    }
    cout << endl;

    return 0;
}