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

十六、搜索与索引结构.ppt

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

十六、搜索与索引结构 1、静态搜索结构 2、动态搜索结构 3、静态索引结构 4、动态索引结构 5、 散列 1、静态搜索结构 静态搜索是指搜索结构在执行插入和删除操作的前后不发生变化。 静态搜索表:基于数组的数据表类。 ⑴顺序搜索 主要用于线性结构中的搜索。 优点:对表的特性没有特殊的饿要求。 缺点:搜索效率较低,特别当n比较大时效率低。 对于线性链表只能用顺序搜索。 ⑵折半搜索 ⑶基于有序顺序表的斐波那契搜索。 按某个斐波那契数确定“中间点”的位置,即当有序表长度为 F(k) -1时,选择mid为F(k -1) -1。从而将整个有序表分割成两 个子表,长度分别为F(k -1) -1和F(k -2) -1。 长度为n -1, low = mid+1, high = F(n -2) -1, mid = F(n -1) + F(n -3) - 1 斐波那契搜索的例 设有一个长度为12的有序表{-1, 0, 1, 3, 4, 6, 8, 10, 12, 17, 20, 23} 2、动态搜索结构 ⑴二叉搜索树 与折半搜索的区别 ⑵AVL树 3、静态索引结构 为什么要用索引? 数据量、每个数据对象以及工作原理 ⑴线性索引 主关键字:能唯一识别数据对象的关键字。 索引表 数据表(区) 稠密索引:索引项与数据表中的一个数据对象“一一对应”的索引 结构。 线性索引 线性索引表的搜索 按关键字的排列可以采用顺序搜索、折半搜索。 线性索引表的变形:稀疏索引 索引表ID 子表 要求:每个子表中的关键字不得超过索引表ID中对应表项的关键 字值。 对索引表ID采用折半搜索,对子表只能用顺序搜索。 稀疏索引得搜索效率为: ASLIndexSeq = ASLIndex + ASLSubList 倒排表 为什么要用倒排表 除了主关键字外,在实际应用中需要对其它属性(次关键字)进行 搜索。利用次关键字建立索引表,称之为次索引表,以提高搜索 效率。 次索引表得组织方式: 在次索引表中列出该属性所有得值,对每一个取值建立有序链表, 即把所有具有相同属性得对象按其存放地址递增顺序或者按主关 键字递增的顺序连接。 为了掌握每种 取值的对象的数量,增设对应链表的长度。因此, 次索引表的每一索引项由次关键字、链表长度和链表三部分组成。 所谓倒排表就是次关键字建立的次索引的组合。 在次索引中按主关键字递增排列的优点是:一旦对象的存储地址 发生修改,只要修改主索引,次索引可以一概不变。 倒排表映象图 索引表 数据表(区) 次索引 m路静态搜索树 多级索引 四级索引 ○ 三级索引 ○ ○ ○ 二级索引 ○ ○ ○ ○ ○ ○ ○ ○ ○ 一级索引 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 数据区 □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ 三路静态搜索树示意图 4、动态索引结构 ⑴动态 m路搜索树 定义:或者是一棵空树,或者满足以下条件的树: ◆ 根结点最多有m棵子树,并具有如下的结构: n,P0,(K1,P1), (K2,P2),· · · · · · , (Kn,Pn) 其中, Pi是指向子树的指针,0≤i≤n<m; K1是关键字, 1≤i≤n<m ◆ K1 < K1+1 ,1≤i < n ◆ 在子树P1 中所有的关键字都小于 K1+1,且大于K1

文档评论(0)

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

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

1亿VIP精品文档

相关文档