版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第
1
9
课冒泡排序齐体验(2)第五单元把数据排序有序【第
一
轮冒泡排序】01
最刺激的过山车
02【流程图梳理排序】03完成最终的排序【
第n论冒泡排序】整理剩余过山车【用代码实现冒泡】让计算机来排序
目
录
情景导入课前回顾我们玩了“过山车排队”游戏,知道了排队规则:相邻两个人比较体重,如果前面比后面重,就交换位置现场状况今天过山车乐园再次迎来了一群兴奋的游客,他们想要体验最刺激的过山车,这样才能玩得最过瘾!如何按照过山车的“刺激指数”从低到高排呢?
翻
转
过
山
车悬挂式过山车木
质
过
山
车家
庭
过
山
车最刺激的过山车结合过山车刺激指数为切入点,深入探究冒牌排序的第一轮排序过程WONDERWHEELPart
01ASTRO
LAND挑
战
结
果经过一轮比较,最刺激的过山车会被“推”到过山车队伍的最后面。挑
战
规
则我们从过山车的最前面开始,依次比较相邻的两种类
刺激指数的过山车。交
换
操
作如果左边的过山车刺激指数比右边的过山车刺激指数
高,就互相交换位置。
最刺激的过山车执行交换操作为了让更刺激的车排在后面,我们需要将这两辆
过山车交换位置。初步分析过程
比较数值大小第一辆过山车刺激指数为7,第二辆为5。因为
7>5,所以第
一
辆更刺激。
最刺激的过山车刺激指数:7刺激指数:7刺激指数:9刺激指数:5
最刺激的过山车任务目标通过“最刺激的过山车”程序,体验将过山车按照刺激指数从低到高排序的第一轮过程,并将体验的结果填写到下面的表格中过山车刺激7
刺激5
刺激9重
新
排
队1、
学生文件--1、最刺激的过山车【程序体验】--index.html刺激3
刺激6
刺激8比较:7/1vs5面
◆交换—7>5,交换文件位置第一轮结果经过第一轮的比较,我们已经将刺激指数为9的过山车排到的最后面。下
一
轮目标在剩下的过山车中
继续寻找直到所有
过山车都按刺激程最刺激的过山车自
排序记录表(根据第1步示范案例,填写后面内容)操作(交换/不换)7>5,交换7
<
9
,
不
换9>3,交换9>6,交换9>8,交换第2~5步的“操作”和“结果”等待你填写!点击”检验答案”只检查结果列度排好顺序结果排序5,7,9,3,6,85,7,9,3,6,85,7,3,9,6,85,7,3,6,9,85,7,3,6,8,9比较7vs
57vs
99vs
39vs
69vs
8步骤第1步第2步第3步第4步第5步整理剩余过山车通过过山车刺激指数主题,深入探究冒牌排序的第N轮排序过程Part
02过山车刺激7
刺激5
刺激9
刺激3
刺激6
刺激8开始
重新排队
下一步
第1轮-第1步:71vs5百
交换:7>5,交换
整理剩余过山车任务目标通过“整理剩余过山车”程序,体验将过山车按照刺激指数从低到高排序的完整过程,并将体验的结果填写到表格中文件位置1、
学生文件--1、整理剩余过山车【程序体验】--index.html比较轮数该轮最终结果(填写数组)第1轮5,7,3,6,8,9第2轮5,3,6,7,8,9第3轮3,5,6,7,8,9第4轮
3,5,6,7,8,9
自
排序记录表(填写每一轮结束后的结果)整理剩余过山车第一轮结果已给出,请根据动画填写第2~4轮的结果,点击“检验答案”检查在剩余三辆过山车(3,5,6)中找到最刺激的那一辆。经过比较和交换,第四轮的排序结果为:
3,5,6,7,8,9比较次数:m=1第二轮比较在剩余五辆过山车(5,7,3,6,8)中找到最刺激的那一辆。经过比较和交换,第二轮的排序结果为5,3,6,7,8,9在剩余四辆过山车(5,3,6,7)中找到最刺激的那一辆。
经过比较和交换,第三轮的排序结果为:
5,3,6,7,8,9
整理剩余过山车第四轮比较第三轮比较完成最终的排序利用流程图分析冒泡排序的完整过程Part
03
完成最终的排序第
一
轮
冒
泡
排
序确定起始位置判断是否结束判断是否需要交换需要交换就交换两辆过山车的位置
不需要交换就继续找下一辆过山车直到比较完了6个数,第一轮结束是
当前刺激指
数>右侧刺交换两辆过山车位置当前位置右移1位开始当前位置为1当前位置<6?激指数?
否结束否
完成最终的排序始任
务
目
标尝试利用刚才分析的思路,将冒泡排序的整个完成的过程用流程图展示出来文
件
位
置1、学生文件--3、完成最终的排序【画流程图】--活动探究单.doc把未排序中的最大数交换到未排序
数的最后面轮数n
设
为
1按顺序输出过山车刺激指数轮
数n<6?是否轮
数
n
加1把未排序中的最大数交换到未排序数的最后面轮数n设为
1按顺序输出过山车刺激指数把未排序中的最大数交换到未排序
数的最后面己
排
序
个
数
n
加
1按顺序输出过山车刺激指数完成最终的排序开
始轮
数
n
设
为1轮
数
n<6?是轮数n<6?是否否始让计算机来排序利用程序验证算法,初步体会到用计算机解决问题的重要性和必要性WONDERWHEELPart
04ASTRO
LANDdata=[
7,5,9,3,6,8
]
#定义待排序的数据列表print('排序前数据:'
,data)#
打印排序前的数据,方便对比n=len(data)#获取列表的长度,用于控制循环次数i=0#
初始化外层循环计数器,从θ开始while
i<n-
1:swapped
=False
#添加标志位,记录本轮是否有交换发生,初始设为False,表示还没有发生交换j=0
#
初始化内层循环计数器,从0开始,每轮都要从第一个元素开始比较while
j<n-i-
1:ifdata[j]>data[j+1]:data[j],data[j+1]=data[j+
1
],data[j]#发生了交换,将标志位设为Trueswapped
=True#内层循环计数器加1,继续比较下一对元素j=j+
1print(
f"第{i+
1}轮遍历:{data}")#检查本轮是否发生了交换,如果没有发生交换
(swapped
为False
),
说明序列已经有序if
not
swapped:print(f"
第{
i+1}轮没有发生交换,序列已有序,提前结束!")break#外层循环计数器加1,进行下一轮排序i=i+
1print(
'排序后数据:
',data)1、学生文件--4、让计算机来排序【代码体验】--冒泡排序算法.py使用海龟编辑器打开“冒泡排序算法.py”,体
验NoImage程序,并尝试交换位置的代码块文
件
位
置
让计算机来排序任
务
目
标n
=len(data)#
获取列表的长度,用于控制循环次数i=
0
#初始化外层循环计数器,从0开始while
i<n-1:swapped=False#
添加标志位,记录本轮是否有交换发生,初始设为False,表示还没j=0
#初始化内层循环计数器,从0开始,每轮都要从第一个元素开始比较
while
j<n-i-
1if
data[j]>data[j+
1]:data[j],data[j+1
]=data[j+1],data[j]swapped
=True#内层循环计数器加1,继续比较下一对元素j=j+1print(f"第{
i+1}轮遍历:{data}")#检查本轮是否发生了交换,如果没有发生交换
(swapped
为False),说明序列已经有序
if
not
swapped:print(f"
第{
i+1}
轮没有发生交换,序列已有序,提前结束!")break#外层循环计数器加1,进行下一轮排序i=i+1print(
'排序后数据:'
,
data)
让计算机来排序
whilei<n-1:控
制
外
循
环使用while循环实现外层循环,外层循环控制排序的轮数,
需要n-1轮(因为n个数需要比较n-1轮
)while
j<n-:控制内循环因为每轮都会把当前最大数放到末尾,可以减少一次比
较,所以需要n-i-1
表示循环到未排序的最后一个数交换位置比较相邻的两个元素,如果前一个元素大于后一个元素,说明顺序不对,需要进行交换data=[7,5,9,3,6,8
]
#定义待排序的数据列表print('排序前数据:',data
)
#打印排序前的数据,方便对比课堂总结提升通过情境加深对冒泡排序算法的认识,并尝试用程序代码体验“报数”排序游戏Part
05冒泡排序基本过程通过不断比较和交换相邻元素
,将最大元素逐步“冒泡”到正
确位置,重复直到所有元素有
序。算法流程图描述学会用流程图清晰表示算法步
骤,理解双重循环结构:外层
循环控制轮数,内层循环控制
每轮比较。编程实现与验证了解如何编写程序实现排序算
法,并通过运行程序来验证算
法的正确性和效率。挑战成功!恭喜大家完成了今天的过山车挑战,掌握了冒泡排序的基本原理
课堂总结与提升游戏规则与过程解析在卡片上写下数字并随机分发。从1开始报数,报到对应数字的同
学立即站出来,直到所有人按顺序排好队。◆
过程解析:假设四位同学拿到卡片:5、2、8、1。1.报“1!”,拿“1”的同学出列(第一位)。2.报“2!”,拿“2”的同学出列(第二位)。3.跳过3、4,报“5!”,拿“5”的同学出列(第三位)。4.跳过6、7,报8!”,拿“8”的同学出列(第四位)。
最终顺序为:1、2、5、8,排序完成。拓展思考这也是
一
种排序方法!计算机解决问题时,往往有多种不同的算法和程序实现方法,冒泡排序只是其中
一
种。
课堂总结与提升-报数排序lb
=[7,5,9,3,6,8]def
mppx(lb):n=len(lb)for
i
in
range(n):for
j
inrange(0,n-i-1):if
lb[j]>lb[j+1]:ls=lb[j]lb[j]=1b[j+
1]lb[j+1]=1sprint(f"第{
i+1}轮遍历:{1
b}")
returnlbprint("排序前数据:",
l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年)唐山市曹妃甸区辅警协警笔试笔试真题(附答案)
- (2025年)临夏回族自治州临夏县辅警协警笔试笔试真题(附答案)
- (2025年)德阳市罗江区辅警考试题《公安基础知识》综合能力试题库(附答案)
- 2026年妇产科产后康复护理试题及答案
- 蚌埠市五河县2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 甘孜藏族自治州甘孜县2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 临汾市曲沃县2025-2026学年第二学期五年级语文第七单元测试卷(部编版含答案)
- 日喀则地区定结县2025-2026学年第二学期三年级语文期末考试卷(部编版含答案)
- 驻马店地区确山县2025-2026学年第二学期三年级语文第七单元测试卷(部编版含答案)
- 文山壮族苗族自治州丘北县2025-2026学年第二学期三年级语文期末考试卷(部编版含答案)
- 【揭阳】2025年广东省揭阳市惠来县卫健系统公开招聘事业单位工作人员152人笔试历年典型考题及考点剖析附带答案详解
- 2025年北京市西城区社区工作者招聘笔试真题及答案
- Z20名校联盟2026届高三语文第二次联考考场标杆文9篇:“出片”
- 肾内科住院医师规范化培训
- 2026工业机器人核心零部件行业现状与发展趋势报告
- 2026年1月飞瓜快手直播电商月报
- mckinsey -国家健康:更健全的健康状况更强劲的经济发展 The health of nations Stronger health,stronger economies
- 线性代数考试题及答案
- 游泳教学直播话术
- 2025秋期版国开电大本科《心理学》一平台形成性考核练习1至6在线形考试题及答案
- 青州至胶州天然气管道工程(淄青线潍坊段改造工程)-公示版1
评论
0/150
提交评论