义务教育版(2024)五年级全一册第19课《冒泡排序齐体验(2)》课件(共25张PPT)

资源下载
  1. 二一教育资源

义务教育版(2024)五年级全一册第19课《冒泡排序齐体验(2)》课件(共25张PPT)

资源简介

(共25张PPT)
义务教育信息科技(2024)五年级          
第1课时
第五单元 把数据排列有序
五年级下册
第19课 冒泡排序齐体验(2)
1
2
进一步认识冒泡排序算法,能够对一组数据
进行排序过程分析。
能够用程序验证排序算法,观察数据的排序
过程,培养用算法解决问题的意识。
学习目标
第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=0
while ij=0
while jif data[j] > data[j + 1]:
data[j], data[j + 1] = data[j + 1], data[j]
j=j+1
print(f'第{i+1}轮遍历: {data} ')
i=i+1
print('排序后数据:',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 序列:
     循环体

展开更多......

收起↑

资源预览