10个数字的冒泡排序魔法

张开发
2026/4/5 19:34:15 15 分钟阅读

分享文章

10个数字的冒泡排序魔法
从键盘输入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;}这段代码是一个经典的冒泡排序程序。它的目的是让用户输入 10 个整数然后按照从大到小的顺序排列并打印出来。 第一步准备与输入搬砖进场int nums[10]你可以把它想象成在桌子上摆了10 个空盒子排成一排准备用来装数字。输入循环程序会问你 10 次每次你输入一个数字它就把它放进一个盒子里。这时候盒子里的数字是乱序的。 第二步冒泡排序核心魔法1. 核心思想比大小换位置代码里的if (nums[j] nums[j 1])意思是“如果左边的数比右边的数大那就交换它们”因为我们要从大到小排所以要把大的数往左边赶小的数往右边挤。2. 形象的比喻排队游戏想象这10 个数字是 10 个身高不同的人我们要按从高到矮排队。内层循环j循环这就好比大家从头开始两两比身高。如果是“左矮右高”就交换位置。经过一轮比较比如第一轮最矮的那个人一定会被交换到队伍的最后面。这就是“冒泡”的名字由来轻的气泡小的数字慢慢“浮”到了顶端数组的末尾。外层循环i循环第一轮结束后最后一个人已经是最矮的了排好了。第二轮我们就不需要再管最后那个人了只需要在前面剩下的人里继续比。9 - i就是这个意思每过一轮需要比较的人数就少一个因为末尾已经排好序的人越来越多了。️ 第三步打印输出展示结果这个循环就是简单地从左到右把盒子里的数字一个个念出来。

更多文章