资源简介 (共25张PPT)义务教育信息科技(2024)五年级 第1课时第五单元 把数据排列有序五年级下册第19课 冒泡排序齐体验(2)12进一步认识冒泡排序算法,能够对一组数据进行排序过程分析。能够用程序验证排序算法,观察数据的排序过程,培养用算法解决问题的意识。学习目标第19课 冒泡排序齐体验(2)上一课我们通过“排队”活动,体验了冒泡排序的算法步骤,下面通过对数据进行排序,分析冒泡排序的过程,并利用程序进行验证与实现。 下课啦!第19课 课堂导入知识激趣 上一课我们通过“排队”活动,体验了冒泡排序的算法步骤,但对具体的数据排序认识还不够深入。本课通过分析具体的数据排序,继续探究、体验其中的算法规律,并利用程序来进行验证,了解算法的程序实现。 第19课 学习活动一 冒泡排序的过程分析二 验证冒泡排序的算法学习活动第19课 学习活动找出最大数利用冒泡排序算法,把下面的最大数交换到最后(最右侧)。一、冒泡排序的过程分析第19课 冒泡排序齐体验(2)冒泡排序是稳定的原地排序算法,即相同的数据在排序后保持其原有的顺序,编程实现也相对简单。 第19课 冒泡排序齐体验(2)但是,对于较大数量的数据,冒泡排序会很耗费时间,对于已经部分排序或接近完全排序的数据,效率也不高。 第19课 学习活动第1步:比较第一个数和第二个数,7>5,交换位置。一、冒泡排序的过程分析找出最大数第19课 学习活动第2步:比较第二个数和第三个数,7<9,不交换位置。一、冒泡排序的过程分析找出最大数第19课 学习活动第3步:比较第三个数和第四个数,9>3,交换位置。一、冒泡排序的过程分析找出最大数第19课 学习活动第4步:比较第四个数和第五个数,9>6,交换位置。一、冒泡排序的过程分析找出最大数第19课 学习活动第5步:比较第五个数和第六个数,9>8,交换位置。 第一轮比较完成,最大数“冒泡”到了最后,表明最大数已经归位。一、冒泡排序的过程分析找出最大数第19课 学习活动 第一轮:把最大数交换到最后,前面已经完成。第二轮:返回最左边,在第一个至第五个数中,利用“把最大数交换到最后”的方法,通过比较、交换找到它们中的最大数,把它排到第五的位置。从小到大排序一、冒泡排序的过程分析第19课 学习活动第三轮:返回最左边,在第一个至第四个数中,通过比较、交换找到它们中的最大数,把它排到第四的位置。一、冒泡排序的过程分析从小到大排序第19课 学习活动 第四轮:返回最左边,在第一个至第三个数中,通过比较、交换找到它们中的最大数,把它排到第三的位置。一、冒泡排序的过程分析从小到大排序第19课 学习活动 第五轮:返回最左边,比较第一个数和第二个数,把较大的数排到第二的位置。一、冒泡排序的过程分析从小到大排序二、验证冒泡排序的算法第19课 学习活动运行程序下面通过观察、运行冒泡排序的程序,体会算法的实现。 第1步:打开配套资源中的“冒泡排序.py”程序。 第2步:观察、运行程序,体验冒泡排序的算法执行过程。二、验证冒泡排序的算法第19课 学习活动分析程序第3步:大致了解程序与算法的对应关系。 #初始数据#用外层循环控制排序的轮数#用内层循环控制每一轮的数据比较#如果前一个数大于后一个数#交换这两个数#移动到下一个数#输出当前数据的顺序#进入下一轮比较#输出排序结果data=[65,3,25,129,311,93,88,156,72,29,336,858,168,108,27]print('排序前数据:',data)n=len(data)i=0while ij=0while jif data[j] > data[j + 1]:data[j], data[j + 1] = data[j + 1], data[j]j=j+1print(f'第{i+1}轮遍历: {data} ')i=i+1print('排序后数据:',data)二、验证冒泡排序的算法第19课 学习活动运行程序第4步:尝试修改程序中的排序数据,再运行程序,观察变化。例如,可以在第一行中增加更多的数据。data=[65,3,25,129,311,93,88,156,72,29,336,858,168,108,27]1.通过情境体验活动,加深了对冒泡排序算法的认识,感受到数据的比较与交换规律。2.一轮“冒泡”排序后,会固定当前未排序数中最大数的位置,因此这个数不需要再参与下一轮的比较,比较次数减少一次。3.通过利用程序验证算法,初步体会到用计算机解决问题的重要性和必要性。第19课 课堂总结第19课 拓展与提升 1. “报数”排序游戏。 在10张卡片上分别写下一个50以内的自然数,随机分发给10位同学,然后选一位同学出来从1开始报数。当报的数与某张卡片上的数相同时,该同学就手持卡片站出来。继续报数,直到50为止,手持卡片的同学按先后顺序站成一排,这时发现,这10个数已经按顺序排列。 用计算机解决排序问题时,也可以用以上“报数”的方法。计算机按顺序数数,当数到的数与参与排序的某个数相同时,这个数就会被加入到已排序数的队列中。第19课 拓展与提升 2. 在配套资源中,有用for循环实现的冒泡排序参考程序。打开并运行这个程序,观察它与 while循环的不同之处,体会同一算法用不同程序实现的方法。 提示:在Python中,for循环语句的基本格式如下。 for 变量 in 序列: 循环体 展开更多...... 收起↑ 资源预览