第8课《快速定位查找算法》ppt课件 信息技术九下.ppt_第1页
第8课《快速定位查找算法》ppt课件 信息技术九下.ppt_第2页
第8课《快速定位查找算法》ppt课件 信息技术九下.ppt_第3页
第8课《快速定位查找算法》ppt课件 信息技术九下.ppt_第4页
第8课《快速定位查找算法》ppt课件 信息技术九下.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、查找算法设计,说课人:XXX,目录,教材分析,第二章 算法实例 2.4.3对分查找和第五章5.4查找算法的程序实现,课题定为对分查找算法及程序实现,安排两个课时,第一课时着重是顺序查找和对分查找算法的形成和初步程序实现,第二课时利用对分查找算法解决一些实际问题的程序实现,本教学设计为第一课时。 从课程标准和学科教学指导意见对本课教学内容的要求来看,要求学生能从问题出发,通过相应的科学步骤形成对分查找的算法。对学生来说,要求通过这一课时的学习能初步掌握或了解对分查找的前提条件、解决问题的对象,明确对分查找算法结构和对分查找的意义。,教学目标,知识和能力:通过实例使学生理解对分查找的特点及设计思想

2、,并学会用对分查找来解决一些实际问题。重视知识的迁移,会将对分查找运用到学习的其它地方,提高学生解决问题的能力。 过程和方法:由小游戏引入,通过实例的渐进学习,学生分组合作交流讨论,理解对分查找的方法。 情感态度和价值观:激发学生学习兴趣和主动思维,并能初步利用这一方法解决一些同类型的实际生活问题。,教学重点与难点,教学重点: 初步掌握顺序查找和对分查找算法的特点。 教学难点: 能理解对分查找算法的设计思想。,教学方法,图示法,在对算法进行讲解时给出流程 图。 提问法:让同学们补充程序设计。,教学过程,1、新课导入 (1)热身:游戏 展示一件物品,让一个学生来猜这个物品的价格,给出提示:在1到

3、50之内,我将根据这个学生猜出的价格提示“高了”或是“低了”。 (2)讨论: 你觉得怎么样猜可以猜的快一点呢?有什么技巧吗?你从这个游戏当中得到什么启示? (3)教师引导: 这个世界不是缺少问题,而是缺少发现,其实在这个游戏的背后,含有一个非常经典的算法。相信通过这节课的学习就会找到更快的方法来猜出数字了!,学车问答 学车问题 开车问题 学车怎么办?驾校大全 中国驾校报名 考试 理论学习 地址 介绍英格驾考 驾考单机版软件车类小游戏 学车小游戏大全,2、新课:,教学步骤一:解释查找的概念和查找的方法有顺序查找和二分查找 查找的概念 一种数据查询的技术 在数组变量中存储的一批数据中找出一个特定的

4、数据. 查找的分类:顺序查找和二分查找,1、 通过图示得出算法的描述: 取得要找的元素值key 从数组的第i个位置开始找(i开始等于1) 如果d(i)=key ,则输出i,并退出循环 否则i指向下一个位置,继续找 如果找到数组末尾还没找到,则输出找不到. 2、构建顺序查找的流程图,把它转化为程序,让同学们补充完整整个程序。 3、对顺序查找进行分析,得出顺序查找所需的平均查找次数为(n+1)/2,教学步骤二:分解顺序查找算法,教学步骤三:分解对分查找算法,解释二分查找的条件和思想 一、二分查找的先决条件 表中结点按关键字有序,且顺序(一维数组)存储。 二、二分法思想:取中,比较,2、假设:用一个

5、数组d(1 to 10)来存放升序的元素序列,用low表示查找范围的起始位置的下标,high表示终止位置的下标,mid表示中间位置元素的下标。 以查找键KEY=21为例分析 第一次比较: 范围d(1)d(11),mid=d(1+11)2)=56, d(mid)Key 所以可以确定接下来要找的范围是前半部分。 比较后high=mid-1 第二次比较: 范围d(1)d(5),mid=d(1+5)2)=19,d(mid)Key 所以可以确定接下来要找的范围是后半部分。 比较后:low=mid+1 第三次比较: 范围d(4)d(5), mid=d(4+5)2)=21,d(mid)=Key ,找到了。,

6、对二分查找方法进行归纳总结,(1)求有序表的中间位置mid (2)若r(mid)=key,查找成功; 若r(mid)key,在左子表中继续 进行二分查找; 若r(mid)key,则在右子表中继续进行二分查找。 构建二分查找的流程图 二分查找方法的初步程序实现,教学步骤四:评价。,评价学生的程序实现情况,并讨论或实践问题:如果是降序序列,该怎么样改动程序?如果序列元素不是11个,而是100个或更多呢?,教学步骤五:总结提升。,(1)由于二分查找过程中的每次比较都能使得搜索空间减半,二分查找将不会使用超过log2n次比较来找到目标值。 (2)提升二分查找算法的实际意义:同学们可能还没有意识到二分查

7、找是多么高效,那不妨设想一下在一个包含一百万个人名的电话簿中找一个名字,二分查找可以让你不超过21次就能找到指定的名字。如果你能够将世界上所有的人按照姓名排序,那么你可以在35步以内找到任何人。,猜数字:,展示一件物品,让一个学生来猜这个物品的价格,给出提示:在1到50之内,我将根据这个学生猜出的价格提示“高了”或是“低了”。,29,讨论:你觉得怎么样猜可以猜的快一点呢?有什么技巧吗?,顺序查找,输入查找的元素值key=32,此时d(i)=key,数组中的第3个位置,如果输入查找的元素值key=22,此时i等于5,超过数组中元素个数,找不到,转化成程序,Private Sub Command3

8、_Click() Key = Val(Text2.Text) i = 1 Do While If Then Text3.Text = 在数组的第 + Str(i) + 个位置 Exit Do End If Loop If i = n + 1 Then Text3.Text = 在数组中没有找到 + Str(Key) End If End Sub,d(i) = Key,i=i+1,以n来表示数组中元素个数,i= n,顺序查找,在第i个位置找到,找到了就退出循环,或者if in then,5 13 19 21 37 56 64 75 80 88 92,5 13 19 21 37,21 37,21,

9、d(mid)key?,Private Sub birSearch(a(), ByVal low%, ByVal high%, ByVal Key, index%) Dim mid As Integer If low high Then 没有查找到 index = -1 Exit Sub End If mid = (low + high) 2 取查找区间的中点 If Key = a(mid) Then 查找到,返回下标 index = mid Exit Sub ElseIf Key a(mid) Then 查找区间在上半部分 high = mid - 1 Else low = mid + 1 查

10、找区间在下半部分 End If Call birSearch(a, low, high, Key, index) 递归调用查找函数 End Sub,调用方法: Private Sub Command1_Click() Dim a(11) a(1) = 5: a(2) = 13: a(3) = 19: a(4) = 21: a(5) = 37 a(6) = 56: a(7) = 64: a(8) = 75: a(9) = 80: a(10) = 88: a(11) = 92 Dim ind As Integer Call birSearch(a, LBound(a), UBound(a), 21, ind) P

温馨提示

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

评论

0/150

提交评论