冒泡排序的算法实现_第1页
冒泡排序的算法实现_第2页
冒泡排序的算法实现_第3页
冒泡排序的算法实现_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、冒泡排序的算法实现一、教材分析 我们采用的教材是浙江教育出版社的算法与程序设计一书, 学科指 导意见对排序算法的要求是初步掌握, 出于对算法掌握要求的把握和在分析完冒泡算法同时就结合算法的实现容易理解的考虑, 在教材处理上, 本课时除了学 习教材第二章第 3 节的“排序”中的冒泡排序的算法外, 还加入了冒泡排序算法 的程序实现。 而冒泡排序算法的程序实现部分的内容在教材中的没有讲到的。 这 样的处理主要是为了: 一是以加深学生对算法和程序设计的关系的体会; 二是可 以通过对程序实现的讲解和练习形成对由双重循环构建而成的程序的分析思路 和分析方法,进一步加深对循环的理解。二、学情分析学生已学习了

2、程序设计的三种结构,也用 VB 实现过若干应用程序,对于事 件处理过程、对象属性有一定的了解,学习使用过 VB 里的数组。但在学习排序 算法的过程中学生可能会对数组变量的变化在理解上存在一定困难, 同时由于程 序实现中会出现有多个对象的事件处理过程代码, 对看懂这些代码并对其进行正 确把握需要细仔地分析。 在排序算法中, 对双重循环内外层的作用及有关循环参 数的设置可能会产生一些不合理或是错误, 需要通过实践的体验进行强化使用规 范。三、教学目标知识目标: 掌握冒泡排序的原理;能结合冒泡排序的原理看懂冒泡排序的主 要代码;理解冒泡排序的流程图;能力目标: 学会使用冒泡排序思想设计解决简单排序问

3、题的算法;进一步理 解程序设计的基本方法,进一步体会算法与程序实现的关系;情感目标: 培养学生分析问题、发现规律的能力,激发学生学习热情;培养 良好的读程习惯;四、教学重点、难点 重点:冒泡排序算法的基本思想,双重循环应用 难点:双重循环程序的解读,冒泡排序算法实现后对程序的理解五、教学策略与手段以循序渐进、层层深入为教学的指导方针, 采用讲解法、 演示法、讨论合作、 分析归纳法引导学生参与思考, 由特殊到一般, 有效地突出重点突破难点, 逐步 深化对冒泡算法、循环思想和执行过程的理解。六、课前准备PPT 课件、冒泡排序的 VB 源程序七、教学过程(一) 课前复习1、数组2、 for-next

4、 语句(二) 引入:师:在前面的学习中,我们学过了用 EXCELS 行一些简单的数据处理方法, 请同学们说说看你是怎么对同学的成绩排次序的?生:先选好数后,点排序就行了。师:是的。只要用 EXCE 啲排序功能就可以了,点点鼠标就能完成。在前面 的学习中, 我们已经解开了很多单击鼠标就可以完成某一个任务的秘密, 今天我 们就来探访一下排序的秘密吧(三)新课师:先让我们来做个游戏,规则是这样的: 请四位同学从前到后坐好并拿好老师给你们的数字, 然后从后面开始两个两 个比较你们手中的数, 如果后面的同学数小的话就和前面的同学换一下座位, 直 到拿到最小数的同学坐在第一个位子为止。现在开始,请其他同学

5、注意观察。 请同学们说说你们看到了什么? 生: 议论并说自己的想法师:我听到了同学们的发言了,你们都看到了最小数已经在最前面了,并且 是经过了 3 次的比较。想一想,如果要让拿第二小的数的同学坐上第二个座位, 还要进行几次的比较呢? (注意只能从后开始两两比较) 请拿数的同学演示一下。 几次?生:两次师:对了,是两次,比第一次少了一次。请四位同学回到座位。冈財我们通过四位同学的演示其实给我们展示了一种数据排序的方法-冒泡法。那么什么是冒泡排序法呢?冒泡排序法:是指把 n 个要排序的数看成一垂直列,从最下面的数开始两两比较 相邻的两个数,把小的数向上换,经过 n-1 次处理以达到排序目的的一种排

6、序方 法。(课件展示)分析总结学生的演示:(课件展示)第 1 次冒泡排序时 j 从 4 开始到 2:181827J/j-12736132j3232j )5636第卄玄冒泡拄序时j从4开始到 4XI/ lx K- 12 3 4 /ld d d d18182732j-1323636日已(4)d|272727d(2)3636il18d327118j36d(4)|13I3232H-j第2谀冒泡排序时j从4开始到3=门如果用伪代码可表示为:第 1 次冒泡排序时 j 从 4 开始到 2:For j=4 to 2 step -1if d(j)d(j-1) then第 2 次冒泡排序时 j 从 4 开始到 3

7、: For j= 4 to 3step -1if d(j)d(j-1) then 交换 d(j) 和 d(j-1) 的值第 3 次冒泡排序时 j 从 4 开始到 4:For j= 4 to 4 step -1if d(j)d(j-1) then交换 d(j) 和 d(j-1) 的值问:如果我们用一个变 i (值分别为 1, 2,3)来记录冒泡的次数,请问能 否将上述的三次代码合并成一段通用的代码呢?生:能(学生讲伪代码)For j= 4 to i+1 step -1if d(j)d(j-1) then交换 d(j) 和 d(j-1) 的值师:对归纳分析引入核心代码:当 i=1 到 3 时:(课

8、件展示)For j= 4 to i+1 step -1if d(j)d(j-1) then交换 d(j) 和 d(j-1) 的值那么,我们用我们学过的循环语句就可以把某一次的比较表示为:(课件展 示)For j= 4 to i+1 step -1if d(j)d(j-1) then k=d(j):d(j)=d(j-1):d(j-1)=knext j 问:这只是某一次比较的代码,那么我们怎么把是第几次体现出来呢?(提示: i 是用来记录次数的)生:思考师:其实,我们可以在刚才的循环外再加一层循环,使 i 也参与变化,以达 到对次数的控制(课件展示)交换 d(j)和 d(j-1)的值For I=1

9、 to 3For j=4 to i+1 step -1if d(j)d(j-1) then k=d(j):d(j)=d(j-1):d(j-1)=knext jnext I这种在循环体内又有一个循环的格式我们称为双重循环。对于双重循环,在 执行时只要明白:“外变一,内一轮”的思路,我们就是对它进行剖析。刚才我们已经讲解了 4 个数冒泡排序的代码,那么有 n 个数呢?(课件展示) For i= 1 To n- 1For j = n To i + 1 Step -1If d(j) d(j - 1) Then temp = d(j) d(j) = d(j - 1) d(j - 1) = tempEnd If Next j Next i 分析冒泡排序的 VB 源程序(用 VB 编辑器演示分析)小结:1、 冒泡排序的基本思想和程序实现2、 双重循环在程序实现中的应用八、作业设置1、 编写一个评分系统的代码段:有 10 个评委,最后得分为去掉一个最高分 与一个最低分后的平均分。 (提示:排序后要将最小和最大的数去除,再累加其 余各数并除以 8)2、 看懂教材 2.3 节中冒泡排序的流程图。九、板书设计用 PPT 课件显示十、教学反思本课时采用通过对冒

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论