冒泡排序和选择排序,快速到位 冒泡排序和选择排序为什么要使用这两种排序方式必看冒泡排序选择排序为什么要使用这两种排序方式必看假如我们手头有一些数字积木要按数字的大小顺序整理好我们只要审好题直接上手就能排就这样…那样…那样…这样…就排出来了。需要我们进行陈述时却觉得表达不清毫无章法所谓只可意会不可言传。这是因为大家智商都差不多够用了但是要创造程序我们还要思路清晰整体流程设计尽量没有冗余因此设计程序是对我们自身思路的整理是挑剔的。同样能够根据题目梳理出最简单的运行逻辑显得尤为必要。那么有没有非常简单的逻辑方式进行排序以方便我们更容易梳理思路编写代码呢当然有我们可以以最值寻找。比如数字按照由小到大的顺序排列第一种每次都寻找数字中的最小值放在序列的开头依此做执行第二种每次都寻找数字中的最大值放在序列的末尾依此做执行。其中第一种叫做选择排序第二种叫做冒泡排序。所以啊冒泡和选择两个字眼不过是两种最简单的排序方式的称呼罢了。冒泡排序根据“每次都寻找数字中的最大值放在序列的最末尾”这句话不难延伸出当我们用两个数值比如10和20做比较时要使较大的数值排在后面即20排在10的后面10 20。所以原序列以每次比较两个数字做判断的话每次都要保证比较后较大的数字往后移动才能保证一圈下来最大的数字在最末尾。代码如下// An highlighted blockvoidmaoPao(){int n;printf(请输入数字元素个数);scanf(%d,n);int a[n];int i,j,t;printf(请输入这%d个要排序的数字值\n,n);for(i0;in;i){scanf(%d,a[i]);//输入需要排序的数字}for(i0;in-1;i)//执行的圈数为n-1圈所以i范围[0,n-2]里有n-1个元素即此for循环可执行n-1圈for(j0;jn-1-i;j)//元素的数组下标号范围,所比较元素a[j]和a[j 1]数组元素下标号从0到n-1每一圈确定一个最末尾元素i从0开始所以每圈的数组下标号为[0,n-1-i]所以在a[j]和a[j 1]中j的最小值为0j1可以取到n-1-i即j范围[0,n-2-i]。if(a[j]a[j1]){//如果元素值大的在前边就交换ta[j];a[j]a[j1];a[j1]t;}//将其依次进行比较并进行调换for(i0;in;i)printf(%d\t,a[i]);//输出排序后的结果return0;}选择排序“每次都寻找数字中的最小值放在序列的开头”对比冒泡自行解释代码如下// An highlighted blockvoidmaoPao(){int n;printf(请输入数字元素个数);scanf(%d,n);int a[n];int i,j,t;printf(请输入这%d个要排序的数字值\n,n);for(i0;in;i){scanf(%d,a[i]);//输入需要排序的数字}for(i0;in-1;i)//和冒泡排序执行的圈数一样多for(ji1;jn;j)//比较元素使用a[0i]和a[j]每圈数组元素下标号[0in-1]在a[i]和a[j]中i作为最左端j左边可以取到0i1右边可以取到n-1即j范围[i1n-1]。if(a[i]a[j]){//如果元素值大的在前边就交换ta[i];a[i]a[j];a[j]t;}//将其依次进行比较并进行调换for(i0;in;i)printf(%d\t,a[i]);//输出排序后的结果return0;}附录冒泡排序和选择排序简略图箭头表示大值/小值 往后/往前移i代表圈数冒泡中j为下标比较用a[j]和a[j1]比较所以jn-1-i就可以。选择排序中i与j都作为下标a[i]与a[j]进行比较所以jn才能索引到最后一位。都是n-1圈第一圈 比较 n-1次第二圈 比较 n-2次第三圈 比较 n-3次…第n-1圈 比较 n-n-1次

相关新闻

最新新闻

猫抓Cat-Catch浏览器资源嗅探扩展架构解读:从双击图标到触达媒体流的6000行代码

猫抓Cat-Catch浏览器资源嗅探扩展架构解读:从双击图标到触达媒体流的6000行代码

猫抓Cat-Catch浏览器资源嗅探扩展架构解读:从双击图标到触达媒体流的6000行代码 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓Ca…

2026/8/21 15:43:09
免费 Android 投屏神器 scrcpy:一条命令上电脑,键鼠直接反控手机

免费 Android 投屏神器 scrcpy:一条命令上电脑,键鼠直接反控手机

免费 Android 投屏神器 scrcpy:一条命令上电脑,键鼠直接反控手机 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 开会时要现场演示手机 App,你手忙脚乱找…

2026/8/21 15:43:09
Level-Up经验值系统全攻略:addPoints、deductPoints与setPoints的10个实战技巧

Level-Up经验值系统全攻略:addPoints、deductPoints与setPoints的10个实战技巧

Level-Up经验值系统全攻略:addPoints、deductPoints与setPoints的10个实战技巧 【免费下载链接】level-up Level-Up is a Laravel package introducing gamification into your applications. Users earn experience points (XP) and levels through interactions, …

2026/8/21 15:43:09
5分钟快速上手kolpa:一条go get命令生成你的第一条假数据

5分钟快速上手kolpa:一条go get命令生成你的第一条假数据

5分钟快速上手kolpa:一条go get命令生成你的第一条假数据 【免费下载链接】kolpa A fake data generator written in and for Go 项目地址: https://gitcode.com/gh_mirrors/ko/kolpa 开发或测试时,你是不是经常为造数据发愁?注册表单…

2026/8/21 15:43:09
为什么Simptip不需要JavaScript?纯CSS提示框与JS工具库性能对比分析

为什么Simptip不需要JavaScript?纯CSS提示框与JS工具库性能对比分析

为什么Simptip不需要JavaScript?纯CSS提示框与JS工具库性能对比分析 【免费下载链接】simptip A simple CSS tooltip made with Sass 项目地址: https://gitcode.com/gh_mirrors/si/simptip 很多前端开发者在实现提示框(tooltip)时&am…

2026/8/21 15:43:09
USB集线器与扩展坞选购指南:从技术原理到0-50元高性价比方案

USB集线器与扩展坞选购指南:从技术原理到0-50元高性价比方案

你是不是也遇到过这样的场景:新买的轻薄本只有两个Type-C口,想同时插U盘、鼠标、读卡器,结果发现接口根本不够用;或者买了个扩展坞,插上移动硬盘后速度慢得像蜗牛,还时不时断连;又或者想给手机扩…

2026/8/21 15:38:09