冒泡排序

2023-11-02 16:04曹晓敏
发明与创新·小学生 2023年11期
关键词:小子星空排序

曹晓敏

前段时间,岭童小子学以致用,通过编程完成了每周贴纸数量的统计和排序,不仅提高了工作效率,还大大降低了错误率。老师表扬他,同学们也向他竖起大拇指。面对大家的夸奖,岭童小子别提有多开心了。得意的同时,他也暗下决心:一定要好好学习,更加努力!

星空太了解岭童小子了。这天下午,星空主动找岭童小子聊天。

小子,我知道你现在特别想学习更多的算法,提高自己的编程能力,对吗?

对呀,真不愧是我兄弟!

其实,除了桶排序,还有其他算法可以对贴纸数量进行排序。你想不想学?

当然想啊。快,让我长长见识!

好。现在你依次告诉我5个需要排序的数据。

1、7、3、5、9。

看好了,小子。从大到小排序开始!

只见计算机屏幕上的数据上下跳动,几秒后,数据就从大到小排列好了。

“真厉害!”岭童小子忍不住欢呼起来。星空是怎么做到的呢?

晓敏老师:

排序的算法有很多,让我们一起来看看星空的思路。

第一步,对数列“1、7、3、5、9”进行第一趟比较。首先,把第一位的数据1与第二位的数据7比较,如图1。

因为第二位比第一位的数据大,所以交换这两个位置上的数据,交换以后的新数列为:7、1、3、5、9。接着,把第二位的数据1与第三位的数据3比较,如图2。

因为第三位比第二位的数据大,所以再次交换这两个位置上的数据,交换以后的新数列为:7、3、1、5、9。然后,按照相同的方法,把第三位与第四位的数据比较,第四位与第五位的数据比较,并调整位置。

这一趟一共比较了4次,调整后的新数列为:7、3、5、9、1。此时,数列中最小的数据“1”被排到了最后。

第二步,对新数列“7、3、5、9、1”进行第二趟比较,并调整位置。首先,把第一位的数据7与第二位的数据3比较,如图3。

因为第二位比第一位的数据小,所以不需要交换,数列依然为:7、3、5、9、1。然后,把第二位与第三位的数据比较,第三位与第四位的数据比较,并调整位置,调整以后的新数列为:7、5、9、3、1。

因為第五位的数据“1”是经过排序后的最小数据,所以,不需要再比

较第四位与第五位的数据。

第二趟一共比较了3次,此时,数列中的“3”被排到了倒数第二的位置。

对新数列进行第三趟、第四趟比较后,这个数列就按照从大到小的顺序排列好了。

你们看懂了吗?这里提供关键代码,如图4,同学们可以在理解这个算法逻辑的前提下,自己研究具体代码。

因为每次比较、调整位置,较小的数都会往后排列,较大的数往前排列,就像泡泡往上冒,因此这个算法被称为“冒泡排序”。关于排序的算法有很多,我们遇到问题时,可以根据实际需要选择合适的、最优的算法。

曹晓敏 :湖南省特级教师、省优秀科技辅导员,长沙市首批卓越教师、市骨干教师。长沙市芙蓉区马坡岭小学信息技术教师。

猜你喜欢
小子星空排序
排序不等式
恐怖排序
炫酷小子
好动小子王妥妥
节日排序
别人家的虎小子(下)
星空
你也爱吃仰望星空派吗?
星空
超级小子