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

“冒泡排序”教学设计.doc

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

《冒泡排序》教学设计 一、教学课题 第三章第四节3.4.1《冒泡法排序算法》——算法与程序设计(新课标教科书;教育科学出版社) 二、教材与学者分析 冒泡排序的重点在于讲清楚冒泡排序的原理以及如何用程序实现算法,这也是本节的难点。本节教材上是通过解决“明日之星英语演讲大赛”的选手成绩排序问题作为切入点,而我并没有按照教材的例子展开,我根据教材“对5个元素‘4,1,2,5,3’的序列进行升序排序”为例,重点分析排序的过程(多少趟、每趟进行多少次比较),进而帮助学生找出其中的规律,由此,学生可以举一反三解决问题。 虽然学生已经学习过程序设计的三种结构,也学习使用过VB里的数组。但在学习排序算法的过程中学生会对数组变量的变化在理解上存在一定困难对双重循环内外层的作用及有关循环参数的设置可能会产生需要通过实践的体验进行强化。培养学生分析问题、规律的能力,激发学生学习热情;培养的程序书写习惯;以循序渐进、层层深入为教学的指导方针,采用讲解法、演示法、讨论合作、分析归纳法引导学生参与思考,有效地突出重点突破难点,逐步深化对冒泡算法、循环思想和执行过程的理解。多媒体网络教室、投影机、多媒体教学平台、flash软件 师:他们是怎么排的? 生:他们之间去比一下,矮的站前面,高的站后面。 师:对,肯定要比一下才知道,如果前面个子比后面的高那他们俩就需要交换一下位置。那排队其实是一种排序:通过调整位置,把杂乱无章的数据变为有序的数据。那我们就一起来分析一下冒泡排序的原理。 【设计意图】教师在黑板上写上a数组的5个单元,a(0),a(1),a(2),a(3),a(4),请5位同学按上来的顺序站在对应的数组单元下,并将学生的身高写在对应的数组单元里,便于后面进行排序使用。 师: 第二趟冒泡排序共需要进行3次比较,j从0开始到2: 第三趟冒泡排序共需要进行2次比较,j从0开始到1: 第四趟冒泡排序共需要进行1次比较,j从0开始到0: 【设计意图】通过动画课件展示排序过程,帮助学生理解排序原理。 如果用伪代码可表示为: 第1次冒泡排序时 j 从 开始到: For?j= to 3? ??if?a(j)a(j+1) then?交换(j) 和(j+1)的值 第2次冒泡排序时 j 从 开始到: For?j= to 2? if?a(j)a(j+1) then?交换(j) 和(j+1)的值 第3次冒泡排序时 j 从 开始到: For?j= to 1? ?if?a(j)a(j+1) then?交换(j) 和(j+1)的值第次冒泡排序时 j 从 开始到: For?j= to 0? ?if?a(j)a(j+1) then?交换(j) 和(j+1)的值:如果我们用一个变i(值分别为1,2,3),一段通用的代码呢? I的值 j值变化 j的值 1 0 0 1 2 3 3 2 1 0 1 2 2 3 2 0 1 1 4 3 0 0 生:能(学生讲伪代码) For?j= to 3-i ?if?a(j)a(j+1) then?交换(j) 和(j+1)的值I的值为0,1,2,3分别表示第1趟,第2趟,第3趟,第4趟。 师:对生:思考可以在刚才的循环外再加一层循环,使i也参与变化,以达到对次数的控制For I=0 to 3 For?j=0 to 3-i ??? if?a(j)a(j+1) then t=a(j) a(j)=a(j+1) a(j+1)=t end if next j next I 生:小组实践。 师:巡视指导。 师:现在我们是由前向后比较,那如果由后向前比较该怎么办呢?请大家在小组内讨论,找到解决方案的小组举手。 生:老师,只要把控制次数的循环语句改一下就行了,改成 for j=4 to i+1 step -1。 师:很好,那我们来试试,看看能不能实现排序功能呢? 生:调试。学生举手,老师,有错误提示,应该再把判断交换的语句改一下,改成 if a(j)a(j-1) then T=a(j) A(j)=a(j-1) A(j-1)=t End if 师:很好,这组同学能根据错误提示“下标越界”发现,当前数组中的值应该与它前面的数进行比较。我们给这组的同学来点掌声。请同学们修改程序实现排序功能。并完成课本P58实践。 【设计意图】学生通过操作,自己发现问题所在,进而找到解决问题的方法,加深学生对冒泡排序的理解。 师生同学总结: 冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(

文档评论(0)

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

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

1亿VIP精品文档

相关文档