冒泡排序法(超详细)

article/2025/9/27 14:56:47

冒泡排序法

文章目录

      • 冒泡法的基本思路
        • 思路总结
      • 程序实现

下面我们一起来看看排序中的冒泡排序法。

💡[例]有5个数字,要求对它们按由小到大的顺序排列。

这种问题称为数的排序(sort)。排序的规律有两种:一种是“升序”,从小到大;另一种是“降序”,从大到小。可以把这个题目抽象为一般形式“对n个数按升序排序”。

排序方法是一种重要的、基本的算法。排序的方法很多,这道题我们用冒泡法排序。

冒泡法的基本思路

冒泡法的基本思路是:每次将相邻两个数比较,将小的调到前面。若有5个数: 9,8,5,2,0,第1次先将最前面的两个数8和9对调。第2次将第2和第3个数(9和5)对调…如此共进行4次,得到8-5-2-0-9的顺序,可以看到:最大的数9已“沉底”,成为最下面一个数,而小的数“上升”。最小的数0已向上“浮起”一个位置。经过第1(共4比较与交换)后,已得到最大的数9。

image-20210818115526522

然后进行第2趟比较,对剩下的前面4个数(8,5,2,0)进行新一轮的比较,使第二大的数“沉底”。同样按照上面方法进行第2趟比较。经过这一趟3次比较与交换,得到次大的数8.

image-20210818115641108

按此规律进行下去,可以推知,对5个数需要比较4趟,才能使5个数按从小到大排列。在第1趟中要进行两个数之间的比较共4次,在第2趟过程中比较3次…第4趟只须比较1次。

思路总结

总结一下:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次两两比较,在第i趟比较中要进行n-i次两两比较。

具体冒泡的方式:用相邻的两个元素进行比较,前一个大于后一个元素时,交换着两个数据,依次直到数组的末尾。

程序实现

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void BubbleSort(int , int );//函数声明
int main()
{int array[100] ;int i;printf("请输入5个数字:");for (i = 0; i < 5; i++){scanf("%d", &array[i]);}BubbleSort(array, 5);//调用函数printf("排序后为:");for (i = 0; i < 5; i++){printf("%d ", array[i]);//排序后输出}return 0;
}
//冒泡排序
void BubbleSort(int array[], int size)
{// 外层循环控制冒泡排序的趟数// size-1表示:最后一趟区间中只剩余1个元素,该趟冒泡可以省略for (int i = 0; i < size - 1; i++){// 具体冒泡的方式:用相邻的两个元素进行比较,前一个大于后一个元素时,交换着两个数据,依次直到数组的末尾for (int j = 1; j < size - i; j++){if (array[j - 1] > array[j]){int temp = array[j - 1];array[j - 1] = array[j];array[j] = temp;}}}
}

运行一下看看
在这里插入图片描述
是我们想要的效果啦!

以上就是我总结的冒泡排序法。
如有不足之处,欢迎指正。
如果对你有帮助,那就动动你的手指,给我点个赞👍吧!
主页还有其他文章,欢迎学习指正。
关注我,让我们一起学习一起成长吧!请添加图片描述


http://chatgpt.dhexx.cn/article/K0jMwNu6.shtml

相关文章

【C语言】冒泡法排序

哈喽&#xff01; 大家好&#xff0c;我们今天结束C语言期末考试啦 不知道各位同学考完了没呢&#xff1f; 由于在考试前依然有很多同学不清楚冒泡法怎么用 这期我专门整理了一下冒泡法的用法&#xff0c; 供大家参考哦&#xff01; 我们先来看一下源代码&#xff1a; /…

2020年程序员日,是个特别的日子

大家调侃2020年是程序员的本命年&#xff0c;因为今年刚好碰上了2020-1024996的公式&#xff0c;发图纪念下。

「1024 程序员节」各大公司和程序员们都是怎么过的?你都做了哪些计划或安排?

鲁迅曾经说过&#xff1a;“这个世界上本没有节日&#xff0c;网友BB的多了&#xff0c;什么节日都可以有。” 上面就当笔者开个玩笑&#xff0c;但互联网时代&#xff0c;人造节日真的是越来越多了&#xff01; 当然&#xff0c;也被赋予了特殊的含义。 比如&#xff1a; 5…

1024 | 第一波程序员日福利

程序员日马上就要到了&#xff0c;熟悉老表(就是X先生本人哈)的读者肯定知道&#xff0c;福利特别多&#xff0c;程序员日这么关键的日子&#xff0c;怎么能不给大家送点福利呢&#xff1f;不&#xff0c;一点点&#xff0c;太少了&#xff0c;来波大的&#xff0c; 针对1024程…

程序员的假期

暑假这么长&#xff0c;想想是不是就觉得非常爽了呢&#xff1f; 虽然&#xff0c;假期之前 内心估计都这样祈祷过⇊ 但身为一名&#xff08;合格的&#xff09;程序员 假期真的离得开代码吗&#xff1f; 时不时得看一下公司的企业群&#xff0c; 时不时处理一下紧急的事情…

2022,了不起的程序员日历来啦!

日历一天天地翻过&#xff0c;转眼间 2021 年还剩下一个半月了。这一年&#xff0c;小伙伴们有怎样的收获&#xff1f;年初的读书计划、健身计划都落实的怎么样啦&#xff01;曾经信心满满立下的众多 Flag&#xff0c;如今都实现了没&#xff1f; 来说一个好消息&#xff0c;20…

1024 程序员日

1024程序猿节日快乐

1024程序员节,今天你加班了吗,关于程序员的趣事都有哪些?

10 月 24 日 本是个寻常的日子 但是在新时代的中国 却赋予了它新的意义 正是广大的程序员们 用一行行代码、一个个函数 支撑起中国互联网的快速发展 所以今天 我们就来看看 有哪些适合程序员的高逼格礼物 以下内容来源 知乎问答&#xff1a; 有哪些适合放在程序员办公桌上的…

每日言论:『程序员的工作方式』

公众号关注 「奇妙的 Linux 世界」 设为「星标」&#xff0c;每天带你玩转 Linux &#xff01; 最近&#xff0c;我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神&#xff0c;有兴趣的同学可以加入和我们一起交流技术&#xff0c;在 「奇妙的 Linux 世界」 公…

程序员的一天是怎样过的?

作者&#xff1a;互联网早班车 程序员的一天是怎样过的&#xff1f; 01 阿里系程序员一天的工作 1、早上8点到公司&#xff0c;看15分钟微博&#xff0c;做一天的计划。 2、10点开个晨会&#xff0c;然后工作到12点。 3、中午出去吃个饭聊天&#xff0c;1点半回来。 4、…

2022 年程序员日记

01 月 01 日 做程序员好多年了呢&#xff0c; 想换行。 回车键却坏了。 01 月 10 日 又发了购书卡&#xff0c; 我觉得我需要买《颈椎病康复指南》了&#xff0c; 毕竟&#xff0c; 《沉默的愤怒》刚读完&#xff0c; 而那本《活着》还没到阅读时间。 01 月 11 日 今天又听…

祝天下所有程序员们,天天2020-1024快乐,程序员狂欢日燥起来!

hello 程序员&#xff01;hello world&#xff01; 1GB1024M&#xff0c;1M1024K&#xff0c;1KB1024B “1024”被认为是一个只有程序员才懂的数字 在这个特殊的日子里 有这么一群人 他们工作起来没日没夜 加最忙的班&#xff0c;熬最深的夜 从茂密黑发&#xff0c;到深…

程序员的一天

时间&#xff1a;2019/11/1 地点&#xff1a;北京海淀 背景&#xff1a;职场萌新。 7:00 闹钟响起&#xff0c;拿起手机刷微博看看时事新闻&#xff0c;又爆出来什么猛料了。譬如娱乐圈内谁谁结婚啦&#xff0c;谁谁生娃啦&#xff0c;热搜只是话题&#xff0c;更有趣的在评论中…

倒计时1天!1024程序员节详细日程出炉,请查收!

风起岳麓&#xff0c;扶摇而上&#xff0c;倒计时 1 天&#xff0c;2022 长沙中国 1024 程序员节整装待发&#xff01; 数位院士领衔、中国根技术掌门人以及海外先进开源技术掌门人齐聚&#xff0c;大咖云集&#xff0c;唯有技术论道方能一解开发者的“相思”之疾。 1场岳麓对话…

程序员一天的生活

昨天有个北大朋友问我&#xff1a;目前在做算法&#xff0c;要不要去搞芯片&#xff1f; 今年找工作的行情大家都知道&#xff1a;裁员比较多。大公司都在裁员&#xff0c;很多公司裁员高达30%。 首先裁的都是一些创新部门&#xff0c;没有收益&#xff0c;公司整体效益不高&a…

四个程序员的一天

你&#xff0c;一个DotNet程序员&#xff0c;刚刚加入一个新项目组。除了你之外&#xff0c;其他的成员包括&#xff1a;Ceer&#xff0c;一直从事C项目的程序员&#xff0c;他刚刚转入C#不到一个月&#xff1b; Jally&#xff0c;整天抱着本Design Pattern&#xff08;没错&am…

2020年“1024”,程序员日

1024 程 序 员 日 向可爱的程序员致敬 随着时代的发展&#xff0c;大数据技术行业发展愈趋成熟&#xff0c;坚持自己对知识、技术和创新追求的程序员层出不穷。相信很多人都不知道&#xff0c;其实&#xff0c;程序员也有他们自己专属的节日: 程序员日。每个节日都有自己的来历…

【历史上的今天】8 月 20 日:传奇程序员诞生日

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2021 年 8 月 20 日&#xff0c;在科技历史上&#xff0c;有两位对着后世软件工程和电子游戏行业影响深远的人诞生&#xff0c;谷歌也在去年发布了 Pixel 4 系列的新成…

2022年程序员日记

01 月 01 日 做程序员好多年了呢&#xff0c; 想换行。 回车键却坏了。 ** 01 月 10 日 ** 又发了购书卡&#xff0c; 我觉得我需要买《颈椎病康复指南》了&#xff0c; 毕竟&#xff0c; 《沉默的愤怒》刚读完&#xff0c; 而那本《活着》还没到阅读时间。 01 月 11…

【历史上的今天】10 月 24 日:1024 程序员节;中文维基百科上线;苹果发布 iPad mini

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2021 年 10 月 24 日&#xff0c;大概在 2014 - 2015 年间&#xff0c;中国互联网兴起了一个全新的概念&#xff1a;10 月 24 日的程序员节。1024 程序员节是中国程序员…