冒泡排序

冒泡排序

原理

每次比较相邻两个元素,如果它们的顺序错误就把它们交换过来每一次遍历操作都会使较大或较小的数靠后排。

代码实现

#include <bits/stdc++.h>
using namespace std;
int a[10];

void BubbleSortReduced (int a[], int n) {  /// 从大到小排序
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (a[j] < a[j + 1]) { /// 如果顺序错误,交换位置
                int t = a[j];
                a[j] = a[j + 1];
                a[j + 1] = t;
            }
        }
    }
}

void BubbleSortIncreased (int a[], int n) {  /// 从小到大排序
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (a[j] > a[j + 1]) { /// 如果顺序错误,交换位置
                int t = a[j];
                a[j] = a[j + 1];
                a[j + 1] = t;
            }
        }
    }
}
int main() {
    for (int i = 0; i < 10; i++) {
        cin >> a[i];
    }
    BubbleSortReduced(a, 10);
    for (int i = 0; i < 10; i++) {
        cout << a[i] << " ";
    }
    cout << endl;
    BubbleSortIncreased(a, 10);
    for (int i = 0; i < 10; i++) {
        cout << a[i] << " ";
    }
    return 0;
}

输入

2 8 5 4 7 9 6 3 1

输出

Redced: 9 8 7 6 5 4 3 2 1
Increased: 1 2 3 4 5 6 7 8 9

动态图演示

冒泡排序

©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页