高一冒泡排序教学设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高一冒泡排序教学设计
、教学目标知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码;能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用;
情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯;
二、重点难点
重点:理解冒泡排序原理及它的流程图
难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)
三、教学策略与手段
采用讲解法、演示法、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解
难度,化抽象为具体,由特殊到一般,有效地突出重点突破难点。
四、课前准备
1教师的教学准备:冒泡排序的课件
2 •教学环境的设计与布置:多媒体网络教室、投影机、多媒体教学平台
五、教学过程
一、导入:创新情景
通过扑克牌的展示引入排序的概念
排序:通过调整位置,把杂乱无章的数据变为有序的数据。。
二、新课
排序的方法很多,这节课我们来学习其中一种比较典型的排序方法一一冒泡排序。
1冒泡排序的基本思想
一边讲解一边以文字形式给出冒泡排序的基本思想(书P31略)。特别要强调怎样算一遍
处理,而且每遍总是从“最下面起”,“自下而上”,比较“相邻”两数。
2、画流程图(按非减次序排序)
这块内容是本节课的重点,采用自顶向下逐步求精的方式,由特殊到一般归纳总结,利用
模块化,各个难点一一突破。
(1)以5张扑克牌的排序为例,演示冒泡排序的逐个过程,再次强化学生对冒泡排序过程的理解。教
师要书写每遍排序过程中两两比较的数、比较的次数、待排序的第一个数
(2)小结排序过程:5张扑克牌总共进行了4轮排序。每轮排序冒起一个最小数,于
是转化成右侧流程图。(譽)
流程图一
给出流程图一之后,教师可以让学生思考一下,这种结构实际上属于什么结构一一循环结
构。但是不规范的,我们需要用一个变量来控制循环次数,从而引出用变量i来记录正在执行
的排序的遍数,它的值是从1到4,每次做完后加1。让学生回顾一下循环结构的流程图模式,两两学生讨论,合作将上面流程图转换成下面的流程图
效性和准确性,规律也更容易找出来。
的遍数有关:遍数+ 1
思考:共n 个数呢?
让学生讨论共n 个数,各遍比较的情况,特别是第 i 遍,完成下表的填写:
第几遍
依次与它的前一个数进 行比较的第一个数
依次与它的前一个数进 行比较的最后一个数
共比较次数
第1遍 d(n) d(2) (n-2)+仁n-1 第2遍
d(n)
d(3)
(n-3)+1= n-2
第i 遍
d(n )
d(i+1 )
(n-(i+1) )+仁n-i
第n-1遍 d(n) d(n) (n-n )+1=1
这里又需要用一个变量来标识正在参加比较的数组元素的下标, 引进变量j :记录一遍处
理过程中,当前数组元素下标。
小结论:共n 个数,第i 遍处理时,j 的值从n 到i+1之间递减,每次d(j)与它的前一个数 d
(j-1)进行比较。
一一解决了,现在将流程图三“两 两比较交换”纳入流程图二,艮卩 得下
面的总流程图: 总流程图
n:参加排序的数组元素总个
数
i:记录正在执行的排序的遍
数,由1变到n-1
j:记录一遍处理过程中,当前
数组元素下标,由 n 变到i+1 说明:虚线框部分即为第 i
iei
流程图三(n 个数)不断两两比较交换
有问题、难点我们都全部细化,
当然别忘了说明一下这个总流程图各部分的作用,并留1分钟让学生自己消化一下。
总共数据比较了多少次?总共数据交换了多少次?
4、流程图T程序语言
可以通过对两个变量和两数互换语句的解决,最终得到主要参考代码。
(1)i:记录正在执行的排序的遍数,由1变到n-1
我们学过的循环语句不外乎for…next和Do - Loop两种,这里已知循环次数的情况下,
用for…next比较简单。
for i=1 to n-1
冒起一个最小数(循环体)
next i
(2)j:记录一遍处理过程中,当前数组元素下标,由n变到i+1
for j=n to i+1 step —1
d(j)与它的前一个数d(j-1)进行比较
next j
(3)d(j)与d(j-1)互换
k=d(j) : d(j)=d(j-1) : d(j-1)=k
对照总流程图,自上往下,写出主要参考代码:
for i=1 to n-1 'i记录正在执行的排序的遍数,由1变到n-1
for j=n to i+1 step -1 'j记录一遍处理过程中,当前数组元素下标,由n变到i+1 if d(j) k=d(j) : d(j)=d(j-1) : d(j-1)=k 'd(j)与d(j-1)互换 en dif next j next i 5、课堂练习: (1)如果要按照从大到小排序,哪个地方需要改下? 若采用冒泡排序算法对其进行从小到大排序,则第二趟的排序结果是( A ) (A)84 90 85 93 92 ( B )84 93 85 90 92 (C ) 84 85 93 90 92 ( D ) 84 90 92 85 93 (3) 在信息加工中,经常要对被处理的数据进行排序,数据的排序有多种方法,冒泡法是一种 常用的排序方法,在排序时经常要进行数据的交换。下列四个选项中, (BCD )能正确地将x 和y 两个变量中的数据进行交换。 A:x = y y = x B: x = x 十 y y = x —y x = x — y C:m = x x = y y = m D: x = x — y y = x 十 y x = y —x (4) 按学号从小到大整理一堆学生试卷的算法是: 第一次,从上到下找出学号最小的试卷反扣 在桌面上;第二次从剩余试卷中从上到下找出学号最小的试卷反扣在第一次找出的试卷上; 第 三次,从剩余试卷中从上到下找出学号最小的试卷反扣在第二次找出的试卷上; ……,依此类 推,最后完成整理工作。此算法属于 (A )排序算法 (B )对分查找 (C )递归算法 (D )解析算法 6、知识拓展 ,一共循环了多少次 d ⑴一d(n),如果数组兀素是 d(0) — d (n-1),上述流程图如 (1) 冒泡排序是一个双重循环 (2) 刚才是n 个数组元素的数组 何更改(学生活动手册)