(
课件网) (义务教育版)五年级 全一册 第19课 冒泡排序齐体验(2) 学习目标 激趣导入 学习活动 思考-讨论 学习探究 课堂小结 拓展-提升 单元主题 单元主题 单元名称 课名称 核心内容 第五单元 把数据排列有序 第 16 课 比较交换找最值 在一列数值中找出最大数,辨认其中的算法结构。 第 17 课 选择排序轻松做 选择排序的基本步骤, 执行次数与选择排序数据量的关系,算法验证与实现。 第 18 课 冒泡排序齐体验(1) 冒泡排序的算法步骤。 第19课 冒泡排序齐体验(2) 冒泡排序的过程,执行次数与冒泡排序数据量的关系,算法验证与实现。 第 20 课 化大为小桶排序 桶排序的算法思想,桶的数量和范围在排序过程中的作用。 学习目标 激趣导入 【身高排序大挑战之冒泡排序】 同学们,你们知道冒泡排序吗?你能使用冒泡排序的思想来组织排队吗? 激趣导入 【建构】 上一课我们通过“排队”活动,体验了冒泡排序的算法步骤,下面通过对数据进行排序,分析冒泡排序的过程,并利用程序进行验证与实现。 学习活动 学习活动 活动1:冒泡排序的过程分析 一 学习活动 一、冒泡排序的过程分析 【 任务 1 】:把最大数交换到最后 利用冒泡排序算法,把最大数排列到最后(最右侧),操作描述如下。 学习活动 一、冒泡排序的过程分析 【 任务 1 】:把最大数交换到最后 第 1 步:比较第一个数和第二个数,7 > 5,交换位置 学习活动 一、冒泡排序的过程分析 【 任务 1 】:把最大数交换到最后 第 2 步:比较第二个数和第三个数,7 < 9,不交换位置 学习活动 一、冒泡排序的过程分析 【 任务 1 】:把最大数交换到最后 第 3 步:比较第三个数和第四个数,9 > 3,交换位置 学习活动 一、冒泡排序的过程分析 【 任务 1 】:把最大数交换到最后 第 4 步:比较第四个数和第五个数,9 > 6,交换位置 学习活动 一、冒泡排序的过程分析 【 任务 1 】:把最大数交换到最后 第 5 步:比较第五个数和第六个数,9 > 8,交换位置 学习活动 一、冒泡排序的过程分析 【 任务 2 】:按数值从小到大排序 第二轮:返回最左边,在第一个至第五个数中,通过比较、交换找到它们中的最大数,把它排到第五的位置。 学习活动 一、冒泡排序的过程分析 【 任务 2 】:按数值从小到大排序 第三轮:返回最左边,在第一个至第四个数中,通过比较、交换找到它们中的最大数,把它排到第四的位置。 学习活动 一、冒泡排序的过程分析 【 任务 2 】:按数值从小到大排序 第四轮:返回最左边,在第一个至第三个数中,通过比较、交换找到它们中的最大数,把它排到第三的位置。 学习活动 一、冒泡排序的过程分析 【 任务 2 】:按数值从小到大排序 第五轮:返回最左边,比较第一个和第二个数,把较大的数排到第二的位置。 学习活动 活动2:流程图描述冒泡排序算法 二 学习探究 二、流程图描述冒泡排序算法 学习活动 活动3:验证冒泡排序的算法 三 学习活动 三、验证冒泡排序的算法 下面通过观察、运行冒泡排序的程序,体会算法的实现。 第 1 步:打开“冒泡排序 .py”程序。 第 2 步:观察、运行这个程序,体验冒泡排序的算法执行过程。 第 3 步:大致了解程序与算法的对应关系。 第 4 步:尝试修改程序中的排序数据,再运行程序,观察变化。 学习活动 三、验证冒泡排序的算法 def bubble_sort(num_list): n = len(num_list) for i in range(n): for j in range(0, n - i - 1): if num_list[j] > num_list[j + 1]: num_list[j], num_list[j + 1] = num_list[j + 1], num_list[j] return num_list 学习活动 三、验证冒泡排序的算法 if __name__ == "__main__": numbers = [7, 5, 9, 3, 6, 8] sorted_numbers = bubbl ... ...