《数据结构(C语言版)》教案 第6章 查找(电子版).docVIP

《数据结构(C语言版)》教案 第6章 查找(电子版).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 查找 本章教学提要 教学重点: 顺序查找 折半查找 树形结构的查找 哈希表的查找 教学难点:折半查找 树形结构的查找 哈希表的查找 本章教学内容 如今人类已经开始进入信息时代,成指数增长的信息给人类带来了巨大的好处,但是如何在信息的海洋中尽快地查找到自己关心和需要的信息呢?这成为利用和处理信息的一个重要环节。本章所研究的就是在各种存储结构中查询信息的有关问题,我们将针对不同的数据存储结构讨论不同的查找算法,特别是对于线性结构这种最常见的结构要多讨论几种算法。 6.1 顺序查找 顺序查找是一种针对线性表进行的最容易想到、最容易描述的查找方法。 顺序查找的步骤:先查找线性表的第一个元素,每查找完一个元素后接着查找它的后继元素,直到查完整个线性表或查到所需元素就结束查找。 6.2 折半查找 折半查找也是面向线性表的一种查找方法,它的突出优点是查找次数少,但此种方法要求线性表是有序的而且能进行随机查找。此外,这种方法的查找目标是符合条件的一项数据,不适合查找符合条件的多项数据。由于要求能随机访问存储结构中的数据,所以这种查找方法只能用于顺序存储的线性表,不能适用于链式结构。 折半查找过程:先用left记录待查找区间(即整个数组)的最小下标0,用right记录待查找区间的最大下标n-1,然后进入缩小待查区间的过程,缩小待查区间的过程是一轮轮地重复进行的,每轮中先求出位于待查区间中间位置的下标mid,用该下标变量a[mid]的数据与x比较,若二者相等就已经找到了,否则就要去掉原待查区间的一半,在缩小后的待查区间中继续进行求中间下标和比较数据的操作。具体去掉的是哪半个区间呢?当xa[mid]时将right改为mid-1,当xa[mid]时将left改为mid+1。直到待查区间中没有数据就结束查找,直到这时也没找到与x相等的数据就说明这样的数据根本不存在。 6.3分段查找 要进行分段查找首先必须能对存储数据的线性表分段,即把整个表分成若干互不相交的子表,这些子表内部的数据并不要求有序,但子表间的排列必须是有序的(即段间有序)。 分段查找x的过程:先用x在索引表中顺序查到相应的子表,然后再对该子表顺序查找x。具体地说,先用x从较小的索引项开始顺序查找,一旦发现某索引项中的值大于或等于x,就根据此索引项的位置信息在对应的子表中进行顺序查找x的工作。 6.4树形结构的查找 在树型结构上利用汉字外码查询内码。 利用排序二叉树进行查找。 6.5哈希表的查找 存储在存储器中的数据都有确定的存储位置(即地址),例如内存地址或下标等,如果建立了一种数据与其存储地址间的对应关系,那么由待查的数据直接就能找到存储它的位置,从而达到查找的目的。这种对应关系通常称为函数,我们称之为哈希函数。 根据设定的哈希函数h(key)和处理冲突的方法将一组关键字映象到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“像”做为记录在表中的存储位置,这种表便称为哈希表。 构造哈希函数的常用方法:线性地址法;数字分析法;平方取中法;除留余数法;折叠法。 1

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档