28 排序算法
一个篮球小组组织了一场投篮比赛,小强同学想把组里 5 个人的投篮得分都存在列表【 score 】中,然后把列表中的分数从高到低的进行排序,请你用编程帮助帮助他实现吧!
1、准备工作
(1)在预留文件中的小强角色中编程。
2、功能实现
(1)代码运行后,会询问回答 5 次。
(2)将回答的数据存入列表【 score 】。
(3)代码运行完毕后,列表中的分数从高到低排列。
(4)每次运行后,列表【 score 】中的数据清空。
题目分析
角色分析
角色:系统保留小强角色
背景分析
背景:默认背景
准备工作
1、从角色库中添加devin角色并改名为小强,如下图所示:
2、依题目要求新建一个score分数列表,如下图所示:
3、由于题目是要求我们进行排序,所以需要提前建立一些变量:i(用于控制排序次数)、j(用于遍历列表内元素)、temp(用于临时存放交换值),如下图所示:
流程分析:
根据题目要求和功能实现对角色的整体流程进行分析:
分析如下:
1、先从键盘读入五个数字存入列表中
2、每次对列表中的第j项和j+1项进行比较,如果j+1项大于j项,交换两项值
3、这样在1次循环后最小值就会到列表中的最后一项
4、重复列表数目-1次执行第2步,这样就可以得到从大到小排序
具体流程图如下:
程序编写
具体每个积木程序的分析可以参考主要积木分析和之前案例的分析
考点分析
本案例难度系数5:综合考人机交互(询问机制)、查条件条件判断、嵌套循环、变量定义及相关积木使用、列表及相关积木操作、逻辑推理等等;难点在于如何分析程序的实现过程;如何对列表中的元素进行比较大小,我们这边采用的是冒泡排序,每次将最小的数字放到列表的最后。方法有多种,小朋友们只要能实现效果就可以。