(
课件网) (义务教育版)五年级 全一册 第17课 选择排序轻松做 学习目标 激趣导入 学习活动 学习探究 思考-讨论 课堂小结 拓展-提升 单元主题 单元主题 单元名称 课名称 核心内容 第五单元 把数据排列有序 第 16 课 比较交换找最值 在一列数值中找出最大数,辨认其中的算法结构。 第 17 课 选择排序轻松做 选择排序的基本步骤, 执行次数与选择排序数据量的关系,算法验证与实现。 第 18 课 冒泡排序齐体验(1) 冒泡排序的算法步骤。 第 19 课 冒泡排序齐体验(2) 冒泡排序的过程,执行次数与冒泡排序数据量的关系,算法验证与实现。 第 20 课 化大为小桶排序 桶排序的算法思想,桶的数量和范围在排序过程中的作用。 学习目标 激趣导入 【身高排序大挑战续集】 同学们,假如我们要进行一次小组活动,需要按从矮到高的顺序排队。大家想想,你会怎么组织进行排队? 激趣导入 【建构】 排序算法有很多种,这一课学习比较简单的选择排序。 本课主要围绕选择排序算法及其执行过程、执行次数来展开学习。 学习活动 学习活动 活动1:描述选择排序的算法 一 学习活动 一、描述选择排序的算法 桌上有5个盒子,分别以 1、2、3、4、5 编号,每个盒子里装有一张卡片,卡片上写着一个大于 0 的数。 学习活动 一、描述选择排序的算法 请依据这些卡片上的数,把它们从大到小排序。 要求:把写着最大数的卡片放在 1 号盒子,写着第二大数的卡片放在 2号盒子,以此类推。 学习活动 一、描述选择排序的算法 选择排序的基本步骤如下。 第 1 步:用前一课所学方法,找出最大数的卡片所在盒子。 第 2 步:把写着最大数的卡片与 1 号盒子里的卡片进行交换。 第 3 步:以此类推,在 2 号到 5 号盒子里,用“找出最大数”的方法,继续查找其中最大数的卡片,找到后与对应盒子里的卡片进行交换。 学习活动 一、描述选择排序的算法 以上操作,其实也形成了一个具有循环结构的算法。 第 1 步:把卡片放入盒子,已排序个数设为 0。 第 2 步:在未排序数中找到最大数,与未排序的第一个数交换位置。 第 3 步:重复第 2 步,依次查看所有数并交换到相应的位置。 第 4 步:按顺序呈现 5 个数。 学习活动 一、描述选择排序的算法 学习活动 活动2:分析选择排序的过程 二 学习探究 二、分析选择排序的过程 5 张卡片上有 5 个数,如108、24、12、91、35。运用前面所学选择排序算法,完成从小到大的排序,验证算法执行的步骤,记录卡片交换的次数,填写任务单。 思考-讨论 进一步思考:学习选择排序算法后,有一位同学说:“我观察一下就能把这5个数排好顺序,不必反复操作,计算机有点笨呀!” 你认同这个说法吗?与小组同学交流你的想法。 二、分析选择排序的过程 学习活动 活动3:验证选择排序的算法 三 学习活动 三、验证选择排序的算法 在上一课的学习中,当找到列表中的最大数后,还可以进行多次比较和交换,实现列表中的数按从大到小排序。 打开以下参考程序并运行,利用程序实现选择排序算法,把数据由大到小排序。 学习活动 三、验证选择排序的算法 data = [64, 25, 12, 22, 11, 90, 88, 77, 55, 33] # 要排序的数据列表 n = len(data) # 获取列表数据的个数 i = 0 # 设置外层循环控制变量的初始值 while i < n - 1: # 外层循环用于控制排序的轮数 max = i # 最大值变量设为当前轮数的起始值 j = i + 1 # 设置内层循环控制变量的值 while j < n: # 内层循环用于找到未排序数中的最大数 学习活动 三、验证选择排序的算法 if data[j] > data[max] : # 如果找到的值更大就更新最大数 max = j j = j+1 if max != i: # 如果最大数不在指定位置就交换位置 data[i], data[max] = data[max], data[i ... ...