(共25张PPT)
第一单元 第4课
化大为小桶排序
(桂科版)五年级
下
1
核心素养目标
3
新知讲解
5
拓展延伸
7
板书设计
2
新知导入
4
课堂练习
6
课堂总结
课后作业
8
01
核心素养目标
信息意识
计算思维
数字化学习与创新
信息社会责任
在小组协作中尊重同伴思路,养成严谨的算法实践态度,树立正确的信息价值观。
能通过手动模拟验证桶排序算法的正确性,并初步思考其编程实现思路,提升数字化实践能力。
掌握桶排序的“分桶-排序-合并”步骤,能用自然语言描述算法,理解其基本原理。
能针对数据排序需求,主动运用桶排序解决问题,感知有序数据的实用价值。
02
新知导入
参加水果超市售货体验的同学的日销售额分别是83元、65 元、22元、13元、77元、65元、30元、34元、85元、10元、78 元、17 元、54 元、44 元、31元。请你想办法帮他们将这些数据按从小到大的顺序进行排列。
数据量较多,使用常规方法排序效率较低。请思考:如何快速将这些数据按从小到大的顺序排列
02
新知导入
学习目标
1.认识价值,形成意识:认识桶排序在数据整理中的实用价值,形成用 “化大为小、分而治之” 的算法思想解决实际问题的意识
2.掌握步骤,描述算法:掌握桶排序的 “分桶、排序、合并” 三个核心步骤,能用自然语言清晰描述桶排序的算法过程,并理解其基本原理
3.手动模拟,关联编程:能通过手动模拟完整的桶排序过程来验证算法的正确性,并初步思考如何将其与编程实现思路关联,提升数字化工具解决数据排序问题的实践能力
这里有 15 个数据要排序,一个个比大小太慢了
当数据很多时,我们可以试试 “化整为零” 的思路。先把数据按范围分到不同的 “桶” 里,让每个桶里的数据变少,再分别排序,最后把桶合并起来,这样是不是就快多了
02
新知导入
你会怎么做呢?说说你的想法。
桶排序: 数据量较大时,可先将数据分到不同的桶中,再对每个桶内数据排序,最后合并所有桶,高效完成排序。
桶排序的第一步,也是最关键的一步,就是“分桶”。大家看,我们根据数据的大小范围,把它们分成了四个不同的“桶”。这样一来,原本杂乱无章的数据就有了初步的归属。
03
新知讲解
一、桶排序步骤一:分桶
根据数据的范围创建若干个“桶”。例如,数据范围在10到89之间,我们可以将其划分为4个区间:
分好桶之后,每个桶里的数据还是乱序的。我们需要对每个桶内的数据进行独立排序。由于分桶后数据范围被缩小、数量变少,排序过程变得非常高效和容易。
03
新知讲解
一、桶排序步骤二:桶内排序
我们可以使用之前学过的基础排序算法(如选择排序或冒泡排序)来完成这个任务。
10
13
17
22
30
31
34
44
54
65
65
77
78
83
85
最后一步,我们只需要将所有排好序的桶,按照桶的顺序依次合并起来,就得到了最终的有序序列
03
新知讲解
一、桶排序步骤三:合并
核心思想:按序拼接,化零为整
10
13
17
30
22
34
31
44
54
65
65
78
77
85
83
03
新知讲解
第1步:分桶:根据数据的数值范围,将其分配到预先准备好的不同桶中。
补充流程图:
第2步:桶内排序:对每个桶内部的数据,分别应用排序算法进行单独排序
第3步:合并:按照桶的顺序,依次将所有排好序的桶合并,形成最终的有序序列
二、算法的描述:
04
课堂练习
填一填
1. 创建若干个( )。
2. 将待排序数据( )到对应的桶中。
3. 分别对每个桶内的数据进行( )。
4. 依次将各个桶中的数据( )起来。
空桶
排序
分配
合并
04
课堂练习
做一做
请运用桶排序算法,将以下数据从小到大排序:
55,12,89,33,76,21,44,67,9,50
解题步骤:
3.合并结果:按桶的顺序依次取出数据,合并成最终的有序序列。
2.桶内排序:分别对每个桶内的数据进行排序(可使用插入排序等)。
1.分桶:确定桶的范围,将数据分配到对应的桶中。
05
拓展延申
议一议
思考:桶排序有哪些优势 又存在哪些不足
优势 (Advantages)
当数据分布比较均匀时,排序速度非常快,时间复杂度低。体现了“分而治之”的思想,将大问题拆解为小问题,简化了处理逻辑。
不足(Disadvantages)
需要额外的内存空间来存放这些“桶”,空间复杂度较高。如果数据分布极不均匀(都集中在少数桶里),排序效率会显著降低。
05
拓展延伸
打开Scratch程序并运行,利用程序实现桶排序算法将数据由大到小排序。
程序验证
将数据加入待排序列表data中
将数据按要求分到4个桶中
05
拓展延伸
核心积木
按照同样的方法对桶2,桶3,桶4排序
按照冒泡排序的方法对桶1进行排序
将四个桶的数据按照顺序放入排序结果列表res中
05
拓展延伸
核心积木
为什么桶的范围和代码写的范围不一样呢
05
拓展延伸
算法对比
执行效率对比
桶排序:数据分布均匀时效率极高(接近0(n))
选择排序:效率稳定,但整体速度较慢(O(n7))
核心原理对比
桶排序:分桶→ 排序→ 合并
选择挂序:选择最值 → 交换位置
空间复杂度对比
桶排序:需要额外的存储空问(楠)选择排序:几乎不需要额外空问(原地排序)
05
拓展延伸
1.准备工作:创建一个数据列表,并初始化几个空的“桶”列表。
2. 分桶实现:使用“重复执行”和“如果那么”积木,遍历数据列表,根据数值范围将每个数据项添加到对。
应的桶列表中。此阶段可以让角色移动到不同位置表示分桶。
05
拓展延伸
3. 排序实现:对每个非空的桶列表,调用Scratch内置的“将列表排序”积木进行升序或降序排列。此阶段可以让角色改变颜色表示正在排序。
4. 合并实现:使用循环依次将每个桶列表中的数据项取出,添加到一个新的“结果列表”中,最终得到有序序列。
5. 可视化效果:在合并完成后,让角色移动到舞台中央,说出“排序完成!”,并播放一段欢快的音乐,增强交互性和趣味性
06
课堂总结
1
三大核心步骤
桶排序算法回顾
2
核心设计思想
3
最佳适用场景
4
算法特性对比
5
进行相关知识拓展
1
2
3
4
5
06
课堂总结
桶排序算法回顾
三大核心步骤:1. 分桶:将数据分配到不同的桶中
2. 排序:对每个桶内的元素进行单独排序
3. 合并:按顺序拼接所有桶的结果
核心设计思想:采用“化大为小,分而治之”的策略。通过减少问题规模来降低排序难度,是一种高效的线性时间排序算法。
最佳适用场景:当待处理的数据量巨大,且数值分布较为均匀时,桶排序能发挥最大优势,避免数据集中在少数桶中。
算法特性对比:相比选择排序等比较类排序的 O(n ) 复杂度,桶排序在理想情况下可达到 O(n),但需要额外的空间开销。
07
板书设计
桶排序
1、认识桶排序的基本思想
2、梳理 “分桶、排序、合并” 三步法
3、学习用自然语言和流程图描述算法
4、完成桶排序的手动模拟练习
5、比较桶排序与选择排序的异同
08
课后作业
如果数据量非常大,使用 “化大为小” 的桶排序方法,相比逐个比较的方法有什么优势?
生活中还有哪些地方用到了 “化大为小、分而治之” 的思想?
快递包裹分拣
图书馆图书分类
按目的地区分,再分别处理
按类别放置,便于查找
https://www.21cnjy.com/recruitment/home/fine