冒泡排序

冒泡排序代码

#include <iostream>
using namespace std;

void BubbleSort(int32_t numList[], int32_t len) {
    for (auto i = 0; i < len - 1; i++) { //只需遍历len-1个元素
        auto isChanged = false;
        for (auto j = 0; j < len - 1 - i; j++) {//每一次都将已排好的不用再比较数剔除
            if (numList[j] > numList[j + 1]) {
                auto tmp = numList[j];
                numList[j] = numList[j + 1];
                numList[j + 1] = tmp;
                isChanged = true;
            }
        }

        if (!isChanged) {
            return;
        }
    }
}

void main() {
    int32_t numList[] = { 31, 41, 59, 26, 41, 58, 12 };
    int32_t count = sizeof(numList) / sizeof(numList[0]);
    BubbleSort(numList, count);


    for (auto num : numList) {
        std::cout << num << " ";
    }
    std::cout << std::endl;
}

返回排序算法分析总结

点赞