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

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

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

查看新版课程

这节课我们来学习选择排序,教大家用选择排序的方法在scratch中同样来实现对一串任意长度的随机数列进行排序,排序方式默认为从小到大。

算法流程

       1.在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

2.再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

3.以此类推,直到所有元素均排序完毕。

第一步, 生成随机数列

       同冒泡排序。

      

第二步, 编写选择排序函数并调用

2.1 创建选择排序函数select,并调用;定义变量i1, i2, temp并初始化,其中i1i2用来控制循环次数,temp用来标记当前最小临时数的位置;

blob.png

blob.png

2.2 编写第一轮循环;从 i2=i1+1开始,将当前最小临时数temp与未排序数列中的数依次进行比较,如果数列中的某个数小雨前最小临时数,则更新temp的值为此时最小数的位置,直到数列的最后一个数。

blob.png

 

2.3 如果temp不等于i1,则交换tempi1位置上的数

blob.png

2.4 编写第二轮循环,重复执行2.32.4,重复次数为列表个数;

blob.png

 

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

blob.png

          

完整代码是

blob.png

 

blob.png

 


作业: 

这节课的作业是:请同学们思考一下,“选择排序”对比“冒泡排序”,排序时一般谁的交换次数更少,更快更有效率?



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

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

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


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