网站大量收购闲置独家精品文档,联系QQ:2885784924

冒泡排序新.doc.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
冒泡排序新.doc

高一冒泡排序教学设计 一、教学目标 知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码; 能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用; 情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯; 二、重点难点             重点:理解冒泡排序原理及它的流程图 难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解) 三、教学策略与手段 采用讲解法、演示法、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点突破难点。 四、课前准备 1.教师的教学准备:冒泡排序的课件 2.教学环境的设计与布置:多媒体网络教室、投影机、多媒体教学平台 五、教学过程 一、导入:创新情景 通过扑克牌的展示引入排序的概念 排序:通过调整位置,把杂乱无章的数据变为有序的数据。。 二、新课 排序的方法很多,这节课我们来学习其中一种比较典型的排序方法――冒泡排序。 冒泡排序的基本思想 一边讲解一边以文字形式给出冒泡排序的基本思想(书P31略)。特别要强调怎样算一遍处理,而且每遍总是从“最下面起”,“自下而上”,比较“相邻”两数。 2、画流程图(按非减次序排序) 这块内容是本节课的重点,采用自顶向下逐步求精的方式,由特殊到一般归纳总结,利用模块化,各个难点一一突破。 以5张扑克牌的排序为例,演示冒泡排序的逐个过程,再次强化学生对冒泡排序过程的理解。教师要书写每遍排序过程中两两比较的数、比较的次数、待排序的第一个数   小结排序过程:5张扑克牌总共进行了4轮排序。每轮排序冒起一个最小数,于是转化成右侧流程图。 流程图一 给出流程图一之后,教师可以让学生思考一下,这种结构实际上属于什么结构――循环结构。但是不规范的,我们需要用一个变量来控制循环次数,从而引出用变量i来记录正在执行的排序的遍数,它的值是从1到4,每次做完后加1。让学生回顾一下循环结构的流程图模式,两两学生讨论,合作将上面流程图转换成下面的流程图 思考:如果参与排序的是n个数呢? 比较遍数与个数关系:遍数=个数-1 流程图二(推广到n个数) 现在只剩下“不断两两比较交换”还需要进一步细化。如何进行不断两两比较交换?。 在程序中有些数据规律不是很明显,如果用表格来列一下,可以极大地提高数据分析的有效性和准确性,规律也更容易找出来。 引导学生发现规律:每次都是从最后面一个数开始比较,最后一个参与比较的数的下标与比较的遍数有关:遍数+1 思考:共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个数) 不断两两比较交换 至此,所有问题、难点我们都全部细化,一一解决了,现在将流程图三“两两比较交换”纳入流程图二,即得下面的总流程图: 总流程图 当然别忘了说明一下这个总流程图各部分的作用,并留1分钟让学生自己消化一下。 总共数据比较了多少次? 总共数据交换了多少次? 4、流程图→程序语言 可以通过对两个变量和两数互换语句的解决,最终得到主要参考代码。 (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

文档评论(0)

daoqqzhuan3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档