内容正文:
选择排序轻松做
选择排序轻松做
五年级全一册
行业PPT模板http:///hangye/
人教版
描述选择排序的算法
分析选择排序的过程
验证选择排序的算法
学科网
导 入 新 课
导 入 新 课
如果要把这几位同学按照身高从低到高列队,大家会怎么做呢?这种排序体现了选择排序的算法思想。
讲 授 新 知
讲 授 新 知
一、描述选择排序的算法
桌上有5个信封,分别以 1、2、3、4、5 编号,每个信封里装有一张卡片,卡片上写着一个大于 0 的数。
请依据这些卡片上的数,把它们从大到小排序。
要求:把写着最大数的卡片放在 1 号信封,写着第二大数的卡片放在 2号信封,以此类推。
你会怎么做呢?说说你的想法。
讲 授 新 知
讲 授 新 知
你会怎么做呢?说说你的想法。
上节课我们学习了从5个信封里找到最大数,那能不能直接把最大数跟1号信封里的数交换呢?
1号信封交换后,还剩4个信封,还要找到这4个信封的最大数,交换到2号信封。
讲 授 新 知
讲 授 新 知
选择排序的基本步骤如下。
第 1 步:用前一课所学方法,找出最大数的卡片所在信封。
第 2 步:把写着最大数的卡片与 1 号信封里的卡片进行交换。
第 3 步:以此类推,在 2 号到 5 号信封里,用“找出最大数”的方法,继续查找其中最大数的卡片,找到后与对应信封里的卡片进行交换。
33
1
68
43
89
77
2
3
4
5
最大数
次大数
讲 授 新 知
讲 授 新 知
以上操作,其实也形成了一个具有循环结构的算法。
第 1 步:把卡片放入盒子,已排序个数设为 0。
第 2 步:在未排序数中找到最大数,与未排序的第一个数交换位置。
第 3 步:重复第 2 步,依次查看所有数并交换到相应的位置。
第 4 步:按顺序呈现 5 个数。。
33
1
68
43
89
77
2
3
4
5
讲 授 新 知
讲 授 新 知
第一轮比较,最大值为89,所以4号信封与1号信封交换,1号信封内为最大值。
33
68
43
89
77
1号
2号
3号
4号
5号
第一轮比较
讲 授 新 知
讲 授 新 知
第二轮比较在2号-5号信封内进行。
最大值为77,所以5号信封与2号信封交换,2号信封内为次大值。
89
68
43
33
77
1号
2号
3号
4号
5号
第二轮比较
讲 授 新 知
讲 授 新 知
第三轮比较在3号-5号信封内进行。
最大值为68,所以5号信封与3号信封交换。
89
77
43
33
68
1号
2号
3号
4号
5号
第三轮比较
讲 授 新 知
讲 授 新 知
第四轮比较在4号-5号信封内进行。
最大值为43,所以5号信封与4号信封交换。
89
77
68
33
43
1号
2号
3号
4号
5号
第四轮比较
讲 授 新 知
讲 授 新 知
经过四轮排序后的结果如下图所示。
89
77
68
43
33
1号
2号
3号
4号
5号
讲 授 新 知
讲 授 新 知
解决问题的算法流程图如右图所示。
排序算法解决的关键问题:1、搜索;
2、交换位置;
3、改变搜索范围。
讲 授 新 知
讲 授 新 知
选择排序不仅可以寻找最大值,也能寻找最小值,按照升序或降序排列。
讲 授 新 知
讲 授 新 知
二、分析选择排序的过程
5 张卡片上有 5 个数,如 91、25、122、48、77。运用前面所学选择排序算法,完成从大到小的排序,验证算法执行的步骤,记录卡片交换的次数,填写任务单。
1.在任务单上记录每次执行后的结果,直至完成从大到小的排序。
2.卡片交换的次数是多少?_________________________________
3.活动一的分析过程,你有什么感想?________________________
_______________________________________________________
讲 授 新 知
讲 授 新 知
初始状态:
第一轮:
第二轮:
第三轮:
第四轮:
最终结果:
91
25
122
48
77
原始数据
未排序最大值
已排序数据
活动一
讲 授 新 知
讲 授 新 知
进一步思考:学习选择排序算法后,有一位同学说:“我观察一下就能把这5个数排好顺序,不必反复操作,计算机有点笨呀!”
你认同这个说法吗?与小组同学交流你的想法。
只有5个数时,人通过看一看、比一比,就能完成排序。但如果是 50 个数、500 个数、5 000 个数……,就不能很快完成了。
但是通过算法编写程序让计算机执行,不管是 5 个数,还是 50 个、500 个、5 000 个……计算机都能够瞬间完成。
讲 授 新 知
讲 授 新 知
三、验证选择排序的算法
在上一课的学习中,当找到列表中的最大数后,还可以进行多次比较和交换,实现列表中的数按从大到小排序。
打开以下参考程序并运行,利用程序实现选择排序算法,把数据由大到小排序,认识程序语句的功能。
讲 授 新 知
讲 授 新 知
拓 展 与 提 升
拓 展 与 提 升
在 Python 中,可以使用 sorted( ) 函数来进行排序,编程验证与实现算法时更加简单便捷。打开配套资源中的参考程序,观察并运行,体会用程序实现算法的多样性,感受多途径解决问题的过程。
拓展活动
总 结
总 结
1.能够梳理出选择排序的基本步骤,通过补全流程图,了解用流程图描述的选择排序算法。
2.了解排序数据量与算法执行次数的关系,能够用程序验证选择排序算法。
3.通过探究选择排序与寻找最大值或最小值的关系,感知排序算法与循环结构的联系。
4.为了更方便地调用程序,会把相关功能封装为函数,编程时可以直接使用。
谢谢观看
学科网制作
Lavf58.29.100
Packed by Bilibili XCoder v2.0.2
$$选择排序,rone. Round two. Round three. Round tall. Round pay.