您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 高一冒泡排序教学设计
1高一冒泡排序教学设计一、教学目标知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码;能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用;情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯;二、重点难点重点:理解冒泡排序原理及它的流程图难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)三、教学策略与手段采用讲解法、演示法、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点突破难点。四、课前准备1.教师的教学准备:冒泡排序的课件2.教学环境的设计与布置:多媒体网络教室、投影机、多媒体教学平台五、教学过程一、导入:创新情景通过扑克牌的展示引入排序的概念排序:通过调整位置,把杂乱无章的数据变为有序的数据。。二、新课排序的方法很多,这节课我们来学习其中一种比较典型的排序方法――冒泡排序。1、冒泡排序的基本思想一边讲解一边以文字形式给出冒泡排序的基本思想(书P31略)。特别要强调怎样算一遍处理,而且每遍总是从“最下面起”,“自下而上”,比较“相邻”两数。2、画流程图(按非减次序排序)这块内容是本节课的重点,采用自顶向下逐步求精的方式,由特殊到一般归纳总结,利用模块化,各个难点一一突破。(1)以5张扑克牌的排序为例,演示冒泡排序的逐个过程,再次强化学生对冒泡排序过程的理解。教师要书写每遍排序过程中两两比较的数、比较的次数、待排序的第一个数(2)小结排序过程:5张扑克牌总共进行了4轮排序。每轮排序冒起一个最小数,于是转化成右侧流程图。流程图一2给出流程图一之后,教师可以让学生思考一下,这种结构实际上属于什么结构――循环结构。但是不规范的,我们需要用一个变量来控制循环次数,从而引出用变量i来记录正在执行的排序的遍数,它的值是从1到4,每次做完后加1。让学生回顾一下循环结构的流程图模式,两两学生讨论,合作将上面流程图转换成下面的流程图思考:如果参与排序的是n个数呢?比较遍数与个数关系:遍数=个数-1流程图二(推广到n个数)现在只剩下“不断两两比较交换”还需要进一步细化。如何进行不断两两比较交换?。在程序中有些数据规律不是很明显,如果用表格来列一下,可以极大地提高数据分析的有效性和准确性,规律也更容易找出来。引导学生发现规律:每次都是从最后面一个数开始比较,最后一个参与比较的数的下标与比较的遍数有关:遍数+1第几遍待排序的第一个数依次与它前一个数进行比较的第一个数依次与它前一个数比较的最后一个数共比较次数1d(1)d(5)d(2)42d(2)d(5)d(3)33d(3)d(5)d(4)24d(4)d(5)d(5)13思考:共n个数呢?让学生讨论共n个数,各遍比较的情况,特别是第i遍,完成下表的填写:第几遍依次与它的前一个数进行比较的第一个数依次与它的前一个数进行比较的最后一个数共比较次数第1遍d(n)d(2)(n-2)+1=n-1第2遍d(n)d(3)(n-3)+1=n-2……………………第i遍d(n)d(i+1)(n-(i+1))+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遍处理时“不断两两比较交换”的流程图n:参加排序的数组元素总个数i:记录正在执行的排序的遍数,由1变到n-1j:记录一遍处理过程中,当前数组元素下标,由n变到i+14当然别忘了说明一下这个总流程图各部分的作用,并留1分钟让学生自己消化一下。总共数据比较了多少次?总共数据交换了多少次?4、流程图→程序语言可以通过对两个变量和两数互换语句的解决,最终得到主要参考代码。(1)i:记录正在执行的排序的遍数,由1变到n-1我们学过的循环语句不外乎for…next和Do…Loop两种,这里已知循环次数的情况下,用for…next比较简单。fori=1ton-1冒起一个最小数(循环体)nexti(2)j:记录一遍处理过程中,当前数组元素下标,由n变到i+1forj=ntoi+1step–1d(j)与它的前一个数d(j-1)进行比较nextj(3)d(j)与d(j-1)互换k=d(j):d(j)=d(j-1):d(j-1)=k对照总流程图,自上往下,写出主要参考代码:fori=1ton-1'i记录正在执行的排序的遍数,由1变到n-1forj=ntoi+1step-1'j记录一遍处理过程中,当前数组元素下标,由n变到i+1ifd(j)d(j-1)then'如果d(j)比d(j-1)小k=d(j):d(j)=d(j-1):d(j-1)=k'd(j)与d(j-1)互换endifnextjnexti5、课堂练习:(1)如果要按照从大到小排序,哪个地方需要改下?(2)五位评委给歌手打分的成绩依次为93,85,92,84,90,原始数据9385928490第一趟8493859290第二趟第三趟84859093925第四趟8485909293若采用冒泡排序算法对其进行从小到大排序,则第二趟的排序结果是(A)(A)8490859392(B)8493859092(C)8485939092(D)8490928593(3)在信息加工中,经常要对被处理的数据进行排序,数据的排序有多种方法,冒泡法是一种常用的排序方法,在排序时经常要进行数据的交换。下列四个选项中,(BCD)能正确地将x和y两个变量中的数据进行交换。A:x=yy=xB:x=x十yy=x—yx=x—yC:m=xx=yy=mD:x=x—yy=x十yx=y—x(4)按学号从小到大整理一堆学生试卷的算法是:第一次,从上到下找出学号最小的试卷反扣在桌面上;第二次从剩余试卷中从上到下找出学号最小的试卷反扣在第一次找出的试卷上;第三次,从剩余试卷中从上到下找出学号最小的试卷反扣在第二次找出的试卷上;……,依此类推,最后完成整理工作。此算法属于(A)排序算法(B)对分查找(C)递归算法(D)解析算法6、知识拓展(1)冒泡排序是一个双重循环,一共循环了多少次(2)刚才是n个数组元素的数组d(1)—d(n),如果数组元素是d(0)—d(n-1),上述流程图如何更改(学生活动手册)
本文标题:高一冒泡排序教学设计
链接地址:https://www.777doc.com/doc-1995199 .html