顶部横幅广告
  • 微信
您当前的位置:首页 > 资讯

冒泡排序是什么排序?数组应用举例2021超实用性的Python零基础入门到进阶视频源码淘宝2021超实用性的Python零基础入门到进阶视频源码¥2已下架

作者:三青 时间:2023-04-28 阅读数:人阅读

 

C++中规定,对于数组的使用应该是先定义后使用,因此,在使用过程中请牢记。接下来,通过几个典型的事例来说明一维数组的使用。

编写程序,由键盘上输入10个学生的C++考试成绩,求他们C++考试成绩的总分、平均分、最高分和最低分。程序文件名为example4_2.cpp。

分析:程序中需要求10个学生的成绩的相关数据,因此,应先定义一个数组,用于存放学生的成绩。

求平均值的方法是:首先求10个数的累加和,并保存在变量sum中,sum即总分,然后将累加和sum除以数据个数10,即可求得10个数的平均值。

求10个数中的最大值的方法是:首先设置变量max,存放第1个数,然后将余下的数按次序分别与max进行比较,若某一数大于max,则将其值赋给max,若某一数小于max,则max的值不变,当余下的数都比较完成后,max中存放的就是10个数中最大值。

求10个数中的最小值的方法同求10个数中的最大值的方法类似。

此题可以推广到求任意N个数的总和、最大值、最小值、平均值的问题,请读者仔细分析其使用过程。

程序如下:

程序运行后,提示输入10位学生的成绩,运行结果如图4.2所示。

图4.2 【例4.2】运行结果

编写程序,某班有10个学生进行了C++考试,现要求将考试成绩按由低分到高分的顺序排序。程序文件名为example4_3.cpp。

分析:排序是指将一组无序的数据按从小到大(升序)或从大到小(降序)的次序重新排列。排序的方法很多,这里介绍两种简单的排序方法——冒泡法和选择法。

(1)冒泡法

先举一实例来说明冒泡法排序:要求将5个数9、3、7、5、8按从小到大的次序排列。排序过程如下:

第一轮:第1次将第1个数9和第2个数3进行比较,因为9大于3,所以将它们交换,第2次将第2个数9和第3个数7进行比较,因9大于7,所以将它们交换,第3次将第3个数9与第4个数5进行比较,因9大于5,所以将它们交换,第4次将第4个数9与第5个数8进行比较,因为9大于8,所以将它们交换,这时,第1轮比较结束,可以看到:最大的数9已“沉底”,即成为最下面的一个数,就像一个最大的水泡一样浮出水面(只不过要倒过来看),在这一轮中共比较4次,得到3、7、5、8、9的数据序列,如图4.3所示。

图4.3 第一轮比较(共4次)

第二轮:第1次将第1个数3和第2个数7进行比较,因3小于7,所以不变,第2次将第2个数7和第3个数5进行比较,因7大于5,所以将它们交换,第3次将第3个数7与第4个数8进行比较,因7小于8,所以不变。因第5个数已是最大数,所以不必再将第4个数与第5个数进行比较,这时第二轮比较结束,这一轮共进行3次比较,得到3、5、7、8、9的数据序列。此轮,第二大的数8像气泡一样被浮出来,如图4.4所示。

图4.4 第二轮比较(共3次)

依此类推,第三轮进行2次比较,得到3、5、7、8、9的数据序列,如图4.5所示。第四轮进行1次比较,得到3、5、7、8、9的数据序列,完成了排序工作,如图4.6、图4.7所示。

图4.5 第三轮比较(共2次)
图4.6 第四轮比较(共1次)
图4.7 最终结果

综合以上可知,对5个数进行排序,要进行4轮比较,在第一轮中要进行4次相邻两个数之间的比较,在第二轮中要进行3次相邻两个数之间的比较,在第三轮中要进行2次相邻两个数之间的比较,在第四轮中只进行1次相邻两个数之间的比较,在比较时,如果前面一个数大于后面一个数,则要交换它们的值,否则就不变。这样才能使5个数按从小到大的次序排列(从大到小排序做法一样,只不过每一次比较大小时交换比较顺序)。这种排序方法被形象地称为“冒泡法”,在排序的过程中,小的数就像气泡一样逐层上冒,而大的数则逐个下沉。

好了,本文到此结束。如果对编程、计算机、程序员方面感兴趣的话,欢迎私信联系我,随时交流!点个关注,是对我莫大的鼓励!

举报/反馈

本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。邮箱:dacesmiling@qq.com

标签:
微信

三青

当你还撑不起你的梦想时,就要去奋斗。如果缘分安排我们相遇,请不要让她擦肩而过。我们一起奋斗!

微信
阿里云