野牛程序员讲少儿编程之冒泡排序 C++ 版:让数字自己游泳
作者:野牛程序员:2025-03-12 22:02:04C++阅读 2104
野牛程序员讲少儿编程之冒泡排序 C++ 版:让数字自己游泳
🚀 野牛程序员讲少儿编程之冒泡排序 C++ 版:让数字自己游泳🏊♂️
👶 适合孩子学习的冒泡排序讲解,简单易懂,一学就会!
🌊 什么是冒泡排序?
冒泡排序(Bubble Sort)是一种最简单、最容易理解的排序算法。它的原理就像水里的气泡,大的气泡会慢慢往上浮,小的气泡在下面。最终,大的数字都会被“冒泡”到数组的最后,小的数字留在前面。
🎯 冒泡排序的核心思想
两两比较相邻的元素,如果前面的比后面的大,就交换它们的位置。
每一轮排序都会把最大的数冒泡到最后。
重复这个过程,直到所有数字都排好序。
📌 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]) { // 如果前面的数比后面的大,交换位置 swap(arr[j], arr[j + 1]); } } } } void printArray(int arr[], int n) { for (int i = 0; i < n; i++) { cout << arr[i] << " "; } cout << endl; } int main() { int arr[] = {5, 2, 9, 1, 5, 6}; // 需要排序的数组 int n = sizeof(arr) / sizeof(arr[0]); cout << "排序前: "; printArray(arr, n); bubbleSort(arr, n); cout << "排序后: "; printArray(arr, n); return 0; }
🧐 代码解析
外层循环
for (i = 0; i < n - 1; i++)
:控制需要冒泡的轮数,每一轮都会把一个最大数放到最后。内层循环
for (j = 0; j < n - 1 - i; j++)
:每轮循环都让大的数不断往后冒泡。swap(arr[j], arr[j + 1])
:交换相邻的两个数,让更大的数向右移动。
🎮 试试看!
输入数组 5, 2, 9, 1, 5, 6
,排序过程如下:
排序前: 5 2 9 1 5 6 排序后: 1 2 5 5 6 9
大数字自己乖乖游到了后面!
🤔 怎么优化?
普通冒泡排序每次都遍历整个数组,其实有更聪明的方法:
加一个标志位
swapped
,如果一轮排序中没有发生交换,说明已经有序,直接停止循环。双向冒泡排序(鸡尾酒排序):前后双向比较,提高效率。
💡 结语
野牛程序员今天就讲到这里了,冒泡排序虽然简单,但却是孩子们学习排序算法的绝佳入门方式!🚀
学会了这个,再去挑战 选择排序、快速排序、归并排序,就会更轻松啦!🔥🔥🔥
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:松狮怎么训练上厕所?
- 下一篇:猫咪死活不睡猫窝?教它乖乖入住的妙招!