当前位置:首页算法 > 正文

《野牛程序员·算法启蒙课》之——冒泡排序

作者:野牛程序员:2025-04-24 08:42:41算法阅读 1992
《野牛程序员·算法启蒙课》之——冒泡排序

欢迎来到《野牛程序员·算法启蒙课》之——冒泡排序,冒出来的可不只是气泡,还有编程智慧!

🎈 小朋友都能听懂的算法故事 · 冒泡排序篇(C++ 版)


🌟 什么是冒泡排序?

想象有一群调皮的数字,像澡堂里洗澡的小朋友,水里一泡就开始比谁大。大的数字就像浮力大的泡泡,一次次往上冒,小的就乖乖待在底下——最后,小数字全在前面,大数字全在后面,队形整齐好看得很!


🔍 冒泡排序是怎么“泡”起来的?

冒泡排序的核心思想就是一句话:相邻两个比一比,谁大谁往后挪。

每一轮都像“打擂台”,从头到尾“哒哒哒”地比一圈,把最大的那个“送”到最后面,然后下一轮就少比一个数,直到全部排序完毕。


🧠 算法步骤用小学生语言讲讲:

🔹 第1轮:从第一个数字开始,两个两个比,谁大谁靠后,一路比到最后,大哥排队尾。
🔹 第2轮:再从头比到倒数第二个,新的大哥又被送到最后第二位。
🔹 一直到只剩下一个数,那就不用比啦!


📌 C++ 代码来啦!

#include <iostream>
using namespace std;

void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n - 1; ++i) {
        // 控制趟数,每次都把一个“最大”的冒到后面
        for (int j = 0; j < n - 1 - i; ++j) {
            // 相邻两个比一比,谁大谁往后换
            if (arr[j] > arr[j + 1]) {
                // 换位置啦~
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

// 打印数组的小助手
void printArray(int arr[], int n) {
    for (int i = 0; i < n; ++i) {
        cout << arr[i] << " ";
    }
    cout << endl;
}

int main() {
    int numbers[] = {5, 2, 9, 1, 6};
    int length = sizeof(numbers) / sizeof(numbers[0]);

    cout << "排序前:";
    printArray(numbers, length);

    bubbleSort(numbers, length);

    cout << "排序后:";
    printArray(numbers, length);

    return 0;
}

🎮 如果数组是:
原始:5 2 9 1 6
第一轮后:2 5 1 6 9 (9到了最后)
第二轮后:2 1 5 6 9
第三轮后:1 2 5 6 9
最后就排好了!


🎯 冒泡排序适合小朋友的原因:

✅ 逻辑清晰
✅ 步骤重复,容易理解
✅ 可配合动画做可视化学习


📣 课后练习:

自己写个数组,把它冒泡排序试试看!可以试试把数组里换成小朋友的身高,用程序让他们按从矮到高排队。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 《野牛程序员·算法启蒙课》之——冒泡排序
  • 相关推荐

    最新推荐

    热门点击