内容正文:
冒泡排序
一、教材分析:
冒泡法排序是高二选修课《算法与程序设计》第三章第四节中的第一小节,要求学生掌握用冒泡排序算法解决问题的方法。排序算法是使用频率最高的算法之一,而冒泡排序是一种很典型而且相对简单的算法。本课时包含冒泡排序的算法思想及其程序实现。学生可以通过程序实现的整个过程形成对双重循环再理解及应用,进一步加深对循环的理解,同时通过问题分析、算法描述、程序设计、运行调试等过程,深入理解算法与程序设计在计算机解决问题过程中的作用和意义,为今后算法与程序设计方面的进一步学习打下基础。
二、学情分析:
本节内容具有一定趣味性,学生的积极性较为容易调动,但是在掌握理解上存在一定难度,虽然学生已经学习了程序的三种基本结构、数组、循环语句等vb语言的基础知识,具备了一定的编程能力,但由于实践较少,对知识的遗忘率较高,对程序的整体编写还存在困难,因此由浅入深,层层递进较符合当前学情。
三、教学目标:
(一) 知识与技能:
1.通过对数组的复习使用,回顾用简单的数组处理、表示数据.
2.通过知识讲解及当堂练习,掌握冒泡排序的原理并学会用冒泡法对数据进行排序.
3.通过小组讨论探究,层层深入,掌握冒泡排序程序的实现.
(二)过程与方法:
1. 通过小组讨论,确定程序所需主要语句,提升交流合作能力。
2. 通过小组探究,完善程序,提升主动性与自主学习和交流合作的能力。
3. 通过小组探究,对程序代码测试、查错、修改,锻炼主动思考和反思,培养元认知。
4. 通过冒泡排序程序实现的过程,培养学生分析问题、发现规律的能力及以及良好的书写习惯。
(三)情感、态度与价值观:
1. 通过学习,能激发学生对《算法与程序设计》课程的热爱。
2. 通过小组合作,增强责任感跟合作意识。
3. 通过冒泡排序程序的实现,增强对程序代码“美”的感受。
四、教学重点、难点:
(一)教学重点:冒泡排序原理及程序实现。
(二)教学难点:冒泡排序的程序实现
五、教学方法:演示法、讲授法、讨论法、练习法。
六、课时:1课时
七、教学过程:
(一)观看视频,导入新课.
视频:《我是歌手》第三季第12期中名次揭晓片段。
教师:在视频中,李健提到他们的名词揭晓方式在数学中称为“冒泡法”,那么冒泡排序的整个过程是怎样的呢?是否跟视频中一致呢?我们这节课讲解“冒泡排序”。
(二)知识讲解,初识冒泡
1.知识讲解
教师:怎样实现冒泡排序呢?我们来看一个具体的实例。
突围赛竞演男明星年龄表
李荣浩
古巨基
胡彦斌
郑淳元
萧煌奇
李健
30
43
32
41
39
41
用冒泡排序思想将年龄排成升序序列
教师讲解冒泡排序的第一轮冒泡,由学生完成后三轮的讲解,现总结结果如下:
循环轮数
比较结果
比较次数
第一轮
确定最小数: 30—>a(1)
5
第二轮
确定第二小数:32—>a(2)
4
第三轮
确定第三小数:39—>a(3)
3
第四轮
确定第四小数:41—>a(4)
2
第五轮
确定第五小数:41—>a(5)
1
最大数: 43—>a(6)
归纳小结:N个数相比较,总共要比较N-1趟,
第一趟要比较N-1次,
第二趟要比较N次
……
第N-1趟要比较1次
依次递减
2.当堂练习
(1) 对“941362”中的6个数码进行两轮冒泡排序后的顺序为( )[来源:Zxxk.Com]
A .634921 B.462319 C.129436 D.964321
(2) 采用冒泡排序算法对参加《我是歌手》第三季的女明星年龄进行排序:
年龄
第一轮
第二轮
第三轮
第四轮
第五轮
第六轮
44(韩红)
32(黄丽玲)
43(陈洁仪)
[来源:学科网ZXXK]
31(张靓颖)
[来源:学科网]
33(谭维维)
27(李佳薇)
3.归纳定义
教师:什么是冒泡法排序?
学生:根据讲解自定义冒泡排序。
总结学生给出的定义:从最后一个数据开始,比较相邻数据,把较小的数据逐次向上推移的,形成一列升序序列的排序技术。
教师:回忆课前视频,是否是按冒泡排序思想排序?排成的数列是升序还是降序?是否是从最后一个数据开始比较?是否是比较相邻数字?
学生思考。
教师:由以上几个问题得出上面定义不正确,冒泡排序可以从第一个数字开始也可以从最后一个数字开始,必须比较相邻数字,最终排成的可以是升序也可以是降序,有序即可。所以重新定义,如下:
冒泡排序也叫起泡法排序,是一种比较简单、易懂的交换排序方法,它通过将相邻元