内容正文:
第2单元 美德少年算法评
得票数目“冒泡”排
第8课
泰山版
学习目标
01
课堂导入
02
新知探究
03
知识总结
04
课后练习
05
目录
CONTENTS
2
学习目标
1
理解冒泡排序的核心原理,掌握“相邻比较、大数前移”的基本步骤,能完成简单数字序列的冒泡排序操作
2
能结合N-S图梳理冒泡排序的算法流程,尝试用积木搭建计票排序程序,实现数据的有序排列
3
了解冒泡排序在计票场景中的应用,能分析程序运行中出现的问题,并尝试优化算法与程序逻辑
PART 1
课堂导入
课堂导入
同学们,学校的电子屏正在实时刷新 “美德少年”的票数,我们班的选手票数已经快突破50了,可大家能一眼看出他现在是全校第几名吗?
只有票数,没有排序,我们就不知道谁领先、谁落后。那怎么才能让计算机自动把这些票数从高到低排好序呢?今天我们就来学一个超好用的方法——《得票数目 “冒泡”排》!
PART 2
新知探究
新知探究
做中学
如果想要时实给得票数进行排序,需要哪些步骤?请用你喜欢的方式描述吧。
新知探究
建构
下图中,A、B、C分别代表3个数字的值(假设C>B>A)。怎样将A、B、C按由大到小的顺序排序?
思维导航
新知探究
建构
(1)先比较A与B,由于A_____B,则A与B互换位置;
(2)再比较A与C,由于_____则A与C互换位置(经过这轮比较,可确定 A是三个数中的最_____值);
(3)最后比较B与C,由于______则B与C互换位置(C是三个数中的最_____值)。
新知探究
建构
小秘诀
将数字依次比较,并将较大的数向前排位,直到所有数字排列顺序都符合要求,这种使数字按大小进行排序的方法就像气泡从水面依次冒出一样,因此叫作“冒泡排序法”。
新知探究
建构
再观察下面这组数字,请用“冒泡排序法”将这些数按由大到小的顺序排序,并填写表格:
根据上表可知,使用“冒泡排序法”排序的轮数比数字的个数_____,每一轮比较的次数等于__________。
新知探究
建构
如图所示,利用N—S图把模拟得票数排序的算法步骤描述出来。
新知探究
建构
根据N—S图,尝试用以下积木制作模拟得票数排序程序吧。
新知探究
建构
可用以下参考程序验证算法:
运行验证,并记录所发现的问题。
问题1:__________________________。
问题2:__________________________。
......
新知探究
建构
运行验证,并记录所发现的问题:
问题1:输入的数据是字符串类型,导致排序规则错误(如 9排在10前面)。
问题2:没有显示排序后的最终结果,无法验证排序是否成功。
问题3:缺少对输入内容的合法性校验,输入非数字内容会导致程序出错。
新知探究
想一想
如何优化这些问题?
新知探究
想一想
1.数据类型处理:将输入的内容转换为数字类型,避免按文本排序导致错误。
2.增加结果显示:排序结束后,显示最终的有序列表,方便验证结果。
3.添加输入校验:过滤非数字的无效输入,确保数据有效。
4.展示排序过程:在每轮排序后显示列表状态,直观理解“冒泡”过程。
5.优化循环效率:可以加入提前结束条件,避免不必要的计算。
新知探究
知识拓展
插入排序法
插入排序法是一种简单常用的排序方法,通常是将列表中的元素分成两部分,一部分是已排序的元素,另一部分是未排序的元素,通过将未排序元素与已排序元素进行比较,然后将未排序元素插人到已排序元素的合适位置中。这好比人们玩扑克牌时的“插牌”,即将刚拿到的牌与手中已排好序的牌进行比较,找到合适位置后插入进来。
除了冒泡排序法和插入排序法,计算机程序设计中还有选择排序法、桶排序法等排序算法。
PART 3
知识总结
知识总结
PART 4
课后练习
课后练习
1.学习了冒泡排序算法后,有同学说:随便写几个数,我一眼就能看出数字的大小,并快速完成排序,为什么还要学习排序算法?请查阅资料,为同学做出解释。
2.小明的爸爸使用花篮装饰公园里的一条环形小路后,小明看到路上的花篮是随意摆放的,决定根据每个花篮里花的数量来重新排列花篮。
规则如下:
(1)小明沿着小路顺时针方向走,逐一检查花篮里花的数量。
(2)如果一个花篮里的花比前一个花篮里的少,小明就会把这两个花篮交换顺序,从花数量少的花篮位置处开始继续往前走。
(3)当所有花篮都排列正确时,小明就会停下来。小明从图中“开始”位置顺时针出发,最少需要改变多少次花篮的位置,才能按规则排列好花篮?
谢谢
下节课见!
Thanks!
泰山版
$