资源简介 (共23张PPT)义务教育信息科技(2024)五年级 第1课时第五单元 把数据排列有序五年级下册第17课 选择排序轻松做12能够梳理出选择排序的基本步骤,通过补全流程图,了解用流程图描述的选择排序算法。了解排序数据量与算法执行次数的关系,能够用程序验证选择排序算法。学习目标第17课 选择排序轻松做排序算法有很多种,这一课学习比较简单的选择排序。下面通过对 5 个数进行排序的探究活动来学习这一内容。第17课 课堂导入情境回顾 日常生活中,排序是很常见的事情,例如,把一堆水果按大小排序,把玩具球按直径大小排序,一队小朋友按身高排序,一个旅游团按年龄排序,一些动物按它们的奔跑速度排序…… 思考你还知道哪些场景需要排序呢?第17课 学习活动一 描述选择排序的算法三 验证选择排序的算法二 分析选择排序的过程学习活动 桌上有5个盒子,分别以1、2、3、4、5编号,每个盒子里装有一张卡片,卡片上写着一个大于0的数。 请依据这些卡片上的数,把它们从大到小排序。12345 要求:写着最大数的卡片放在1号盒子,写着第二大数的卡片放在2号盒子,以此类推。第17课 学习活动问题提出一、描述选择排序的算法在排序算法中,如何将五个无序的数进行排序呢?12345最大数12345次大数第17课 学习活动一、描述选择排序的算法问题分析第17课 学习活动一、描述选择排序的算法 第1步:用前一课所学方法,找出最大数的卡片所在盒子。 第2步:把写着最大数的卡片与1号盒子里的卡片进行交换。 第3步:以此类推,在2号到5号盒子里,用“找出最大数”的方法,继续查找其中最大数的卡片,找到后与对应盒子里的卡片进行交换。基本步骤第1步:把卡片放入盒子,已排序个数设为0。第2步:在未排序数中找到最大数,与未排序的第一个数交换位置。第3步:重复第2步,依次查看所有数并交换到相应的位置。第4步:按顺序呈现5个数。第17课 学习活动一、描述选择排序的算法以上操作,其实也形成了一个具有循环结构的算法。算法描述看懂流程图后,指出“搜索、交换位置、改变搜索范围”等操作所在的步骤。第17课 学习活动一、描述选择排序的算法算法描述二、分析选择排序的过程1(108)2(24)3(12)4(91)5(35)5张卡片上有5个数,如108、24、12、91、35。运用前面所学选择排序算法,完成五个数从小到大的排序,验证算法执行的步骤,记录卡片交换的次数,填写任务单。第17课 学习活动任务要求根据选择排序算法执行过程,用☆找出未排序数据中的最大值,与未排序数中最前面的数进行交换,并记录每一轮排序结果。第17课 学习活动排序过程分析二、分析选择排序的过程 分析选择排序算法每轮的执行次数。第17课 学习活动二、分析选择排序的过程排序过程分析 学习选择排序算法后,有一位同学说:“我观察一下就能把这5个数排好顺序,不必反复操作,计算机有点笨呀!” 你认同这个说法吗?与小组同学交流你的想法。第17课 学习活动二、分析选择排序的过程思考交流 在上一课的学习中,用程序实现并验证了“找出最大数”的算法。 找到最大数后,通过多次比较和交换,可以把列表中的数按照从大到小或从小到大的顺序排列,从而实现排序。第17课 学习活动算法实现三、验证选择排序的算法打开参考程序并运行,利用程序实现选择排序算法,把数据由大到小排序。第17课 学习活动程序验证三、验证选择排序的算法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 = jj = j+1if max != i: # 如果最大数不在指定位置就交换位置data[i], data[max] = data[max], data[i]i = i+1 # 进入下一个数的排序print('排序后的数:', data) # 输出排序后的列表 大致了解程序与算法的对应关系,找到其中的循环结构。第17课 学习活动循环结构三、验证选择排序的算法 尝试修改第一行参与排序的数据个数,保存程序后再次运行,观察输出结果的变化。第17课 学习活动三、验证选择排序的算法 data = [64, 25, 12, 22, 11, 90, 88, 77, 55, 33]程序修改 1.选择排序是计算机完成排序任务时常用的一种排序算法。2.选择排序算法借助在特定范围内,寻找最大数或最小数并交换位置的方式进行排序。3.通过探究选择排序与找出最大值或最小值之间的关系,可以了解算法的内在联系。第17课 课堂总结 在Python中,可以使用sorted( )函数来进行排序,编程验证与实现算法时更加简单便捷。 打开配套资源中的参考程序,观察并运行,体会用程序实现算法的多样性,感受多途径解决问题的过程。第17课 拓展与提升下课啦! 展开更多...... 收起↑ 资源预览