冒泡排序:10个数从大到小排列

张开发
2026/5/19 10:28:08 15 分钟阅读
冒泡排序:10个数从大到小排列
冒泡排序输入10个数利用冒泡排序的方法从大到小排序并输出。#include stdio.hint main(){int nums[10];int i, j, t;printf(请输入10个整数\n);for (i 0; i 10; i){printf(请输入第%d个数\n, i 1);scanf(%d, nums[i]);}for (i 0; i 9; i){for (j 0; j 9 - i; j){if (nums[j] nums[j 1]){t nums[j];nums[j] nums[j 1];nums[j 1] t;}}}printf(从大到小排序后的结果为\n);for (i 0; i 10; i){printf(%d , nums[i]);}printf(\n);return 0;}这段代码实现了一个非常经典的冒泡排序算法1. 准备与输入阶段int nums[10];在内存中开辟了一个能存放10个整数的“柜子”编号从0到9。scanf循环利用for循环让用户依次把10个数字填进这个“柜子”里。i 1是为了让提示语更符合人类习惯显示“第1个”而不是“第0个”。2. 核心排序阶段冒泡排序通俗原理解析想象这些数字是一群人在排队我们要按身高从高到矮从大到小排列两两PK内层循环从队伍第一个开始相邻的两个人比身高。关键逻辑if (nums[j] nums[j 1])。如果前面的人比后面的人矮就交换位置。结果高的会被换到前面矮的会被换到后面。冒泡效果沉底经过第一轮完整的比较最矮的那个人一定会被交换到队伍的最后面nums[9]。这就好比水底的气泡大的浮在上面小的沉到底部。重复操作外层循环外层循环 (i)一共需要比较 9 轮i 9。因为 10 个数只要排好 9 个剩下的那个自然就是最矮的了。内层循环 (j 9 - i)这是优化的关键。因为每一轮结束后最后面的i个数字已经是最矮的且排好序了不需要再重复比较所以比较次数要减去i。3. 展示阶段循环遍历排好序的数组将其打印在屏幕上。此时数组已经是降序排列输出结果与提示语一致。

更多文章