- 吐吐很快乐
幼儿版冒泡算法!
- 2025-7-10 11:23:22 @
#include<iostream> // 导入输入输出库,让电脑能读数字和打印结果
using namespace std; // 使用标准命名空间(暂时理解成“固定开头”)
const int n = 10; // 定义常量n=10,表示我们要排序10个数字
int a[n + 1]; // 定义数组a,有11个位置(0-10),但我们只用1-10来存数字
int main() { // 主函数,程序从这里开始运行
// 第一步:输入10个数字
cout << "请输入10个数字,用空格隔开:" << endl;
for (int i = 1; i <= n; ++i) { // 循环10次(i从1到10)
cin >> a[i]; // 把输入的数字存到数组a的第i个位置(像给桶编号1-10放数字)
}
// 第二步:冒泡排序(核心部分)
for (int i = 1; i <= n - 1; ++i) { // 外层循环:控制排序轮数(总共n-1轮)
for (int j = 1; j <= n - i; ++j) { // 内层循环:每轮比较相邻的两个数字
if (a[j] < a[j + 1]) { // 如果左边的数字比右边小
swap(a[j], a[j + 1]); // 就交换它们(让大的数字往右“冒泡”)
}
}
// 每一轮结束后,当前最大的数字会“沉”到最右边(像泡泡浮到水面)
}
// 第三步:输出排序后的结果
cout << "从大到小排序后的结果是:" << endl;
for (int i = 1; i <= n; ++i) { // 循环打印数组a的1-10号位置
cout << a[i] << " "; // 输出数字,用空格隔开
}
cout << endl; // 最后换行(像写完一行字后按回车)
return 0; // 程序结束,告诉电脑“一切正常”
}
举个实际例子 假设输入是 3 1 4 2(简化版,n=4):
第一轮(i=1):
比较3和1 → 不交换 → [3,1,4,2]
比较1和4 → 交换 → [3,4,1,2]
比较1和2 → 交换 → [3,4,2,1](最大的4到了最后)
第二轮(i=2):
比较3和4 → 交换 → [4,3,2,1]
比较3和2 → 不交换 → [4,3,2,1](第二大的3到了倒数第二)
第三轮(i=3):
比较4和3 → 不交换 → [4,3,2,1](排序完成!)
0 条评论
目前还没有评论...