查找与索引的概念.PDFVIP

  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文档。上传文档
查看更多
查找与索引的概念

 查找与索引的概念  基于顺序表的查找  二叉查找树  B-树和B+树(略)  Trie树(略)  Hash查找  本章小结 1 7.1 查找与索引的概念 • 搜索(Search)是数据处理中最常见的一种操作。 – 基本功能是针对给定的一个值k,从一个数据对象的集合中 寻找关键码或某个属性为k的数据对象。如果找到则返回该 数据对象,如果没有找到则返回失败标志。 • 搜索操作的实施方法和计算复杂性同数据的存储结构 有很大的关系,总体讲数据的存储结构和操作方式可 以有如下两种分类方式: – 静态和动态 • 静态数据结构不考虑插入和删除操作。 • 动态数据结构在使用过程中频繁地有数据插入和删除,数据结构 需要在动态的过程中维持数据在数据结构中的数据分布模式。 – 内存和外存 • 内存数据是指整个数据结构完全放在内存中。 • 基于外存的存储结构是指数据部分或全部存放在磁盘上,为此在 搜索和数据组织中需要充分考虑磁盘的读写特点。 2 • 索引(Index)是用于支持搜索操作的数据结构及其操作, 其目标是提高搜索操作的性能。目前索引被认为是提升 大规模数据查询和检索操作性能的最有效的手段之一。 • 在设计一个索引结构的过程中需要从如下方面进行考虑: – 能够实现对大规模数据的管理能力。 – 能够支持高效地搜索操作。 – 能够有效地支持频繁的插入、删除和修改操作。 – 索引结构需要考虑数据存储介质的特点。例如,在以磁盘 为存储介质的索引结构应该考虑磁盘按块存取的特点。 – 能够有效地支持数据结构本身的特点。 此外,还要考虑应用中具体数据操作的特点 3  衡量一个搜索算法的时间效率的标准是:在搜 索过程中关键码的平均比较次数或平均读写磁 盘次数 (只适合于外部搜索),也称为平均搜 索长度ASL(Average Search Length) ,通常它 是搜索结构中对象总数n或文件结构中物理块 总数n的函数。  另外,衡量一个搜索算法还要考虑算法所需要 的存储量和算法的复杂性等问题。 7.2 基于顺序表的查找 • 顺序表是一种基本的数据结构类型。数组和链 表是两种顺序表的结构。 – 数据在数组中可以有两种存储方式,一种是有序的, 另一种是无序的。对于无序的顺序表只能用顺序搜 索的方式进行搜索,而如果数据是以有序的方式存 储的,则可以用折半搜索、斐波那契搜索等方法进 行搜索。 – 同数组相比链表不需要事先申请连续的空间,同时 其长度也没有上限,因此也是一种常用的线性表结 构。 (程序7-1 数组线性表) 5 顺序搜索(Sequential Search) • 如下情况下线性表结构上的搜索需要采用 顺序搜索的方法。 – 数组中的数据是无序的; – 数据存储在链表中,而链表上又没有辅助的索 引结构。 • 顺序搜索的计算复杂性为O(n),其中n为线 性表的长度。 (程序7-2 顺序查找) 6 7.2.3 有序顺序表上的搜索操作 • 如果数据的排列是有序的,则存在很多高 效的算法,如折半搜索、

文档评论(0)

zqianqxf02 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档