Scratch中的冒泡排序

一、冒泡排序的概念

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

二、冒泡排序的算法原理

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

三、冒泡排序的视频演示

四、冒泡排序的步骤解析

一串未排序的数字(10,5,16,25,3,6,82,13),采用冒泡排序从小到大进行排序的步骤解析:(红色字体表示交换的数值)

10,5,16,25,3,6,82,13(原数列)

5,10,16,25,3,6,82,13

5,10,16,3,25,6,82,13

5,10,16,3,6,25,82,13

5,10,16,3,6,25,13,82(第一轮结束,将最大值的82放在了最后一位)

5,10,3,16,6,25,13,82

5,10,3,6,16,25,13,82

5,10,3,6,16,13,25,82(第二轮结束,将第二大的25放在了倒数第二位)

5,3,10,6,16,13,25,82

5,3,6,10,16,13,25,82

5,3,6,10,13,16,25,82(第三轮结束,将第三大的16放在了倒数第三位)

3,5,6,10,13,16,25,82(第四轮结束)

五、用Scratch实现冒泡排序

我们要如何用Scratch来实现从左下图变成右下图的效果呢?

  • 第一步:先创建一个“冒泡排序”的列表

  • 第二步:插入乱序的数列(例如:10,5,16,25,3,6,82,13)

  • 第三步:从第一个数据开始,对上一个数据和下一个数据进行比较,若满足,不需要交换位置,若不满足,需要交换位置

解析:为什么需要“中介”的变量呢?是因为,如果我们没有“中介”的变量,是无法进行两个数据的交换的,所以得运用“中介”的变量,将其中的一个数据先存储进去,然后才能进行交换操作。

  • 第四步:内层循环的循环次数每循环完一次,循环次数减一

解析:对于循环的次数,我们在上面演示的时候,发现每一轮排完的时候,最大值已经固定在数列的最后方,所以每次循环完,循环的次数减一,代码我们是采用了变量i,变量i的作用就是让其每次循环完一次,变量增加1,进而循环的次数=列表项目数-i。

  • 第五步:外层循环的次数

解析:为什么还需要外层循环呢?是因为我们从第一项对比到最后一项,又继续从头开始遍历,所以,重复执行的次数是列表的项目数次。变量j的作用是让其不断的更新对比的项数,例如对比第j项和第j+1项的意思就是上一项和下一项做比较,比较完了之后,变量j就加1。

完整代码:

那么这样就完成Scratch中的冒泡排序啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值