《野牛程序员·算法启蒙课》之——冒泡排序
作者:野牛程序员: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
