冒泡排序算法

难度:

尊敬的用户,该视频为旧版会员课程,仅限已购买的会员查看

编玩边学最新推出哈克尼斯圆桌课堂模式

更优质的课程与服务,系统的课程体系,提供国内最专业的儿童编程教育

查看新版课程

这节课我们来学习冒泡排序,用scratch实现对一串任意长度的随机数列进行排序,排序方式默认为从小到大。

算法流程

    1.从最后一个数开始,从下往上,依次比较相邻的元素,如果前一个比后一个数大,就交换位置。(这步做完后,第一个的元素会是最小的数)

2.除了已排好的第一个数,针对其余的元素重复以上的步骤;

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


第一步 生成随机数列;

       利用随机数和循环语句生成随机数列,用链表保存;

1.1 输入要生成的随机数列数目;

1.2 生成一个随机数并添加进数列中;

1.3 添加一个循环,来重复生成随机数;

1.4 判断生成的随机数是否已在数列中,若在,则重新生成随机数;若不在,将随机数添加到数列中。

1.png


第二步 编写冒泡排序函数并调用

2.1 创建冒泡排序函数bs,并调用;定义变量ii1i用来指定数列中元素的位置,i1用来控制循环次数,初始值为链表的长度;

2.png

在生成随机数列的代码后加上调用函数代码;

3.png

2.2 编写第一轮循环;从下往上依次比较相邻的俩个数,直到第一个元素;如果前一个数比后一个数大,则交换位置;

4.png


2.3编写第二轮循环;依次对越来越少的元素重复上面的第二步,直到没有任何一对数字需要比较(即排序完成,此时i1=0;

5.png


2.4 新建变量numbercount和变量已完成来记录并显示排序完成情况;

6.png   



作业: 

思考题:实现冒泡排序过程中的排序效果直观展示。



 登录/注册后发表或回复问题

在本系列的课程中,我们将经典算法在scratch中实现,你准备好了吗?挑战你自己的时刻到了

通过本系列课程的学习,你将会学到编程的精髓——算法,成为编程专家


###讲课老师:王代银,北大2015级硕士,算法、黑客技术高手,将艰深晦涩的算法问题用scratch讲得有趣易懂,这套scratch算法课程备受众多中小学信息技术课教师推崇,被大量用作参考教材!