- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
余腊中,数据结构c版,第12章静态索引与散列1
copyright @ Yu Lasheng 第12章静态索引与散列 ? 线性索引技术 ? 倒排表技术 ? 散列表 静态索引结构 示例:有一个存放职工信息的数据表,每一个职工对象有近 1k 字节的信息, 正好占据一个页块的存储空间。 假设内存工作区仅能容纳 64k 字节的数据,在某一时刻内存最多可容纳 64 个对象以供搜索。 如果对象总数有 14400 个, 不可能把所有对象的数据一次都读入内存。无论是顺序搜索或对分搜索,都需要多次读取外存记录。 如果在索引表中每一个索引项占4个字节, 每个索引项索引一个职工对象,则 14400 个索引项需要 56.25k 字节, 在内存中可以容纳所有的索引项。 这样只需从外存中把索引表读入内存,经过搜索索引后确定了职工对象的存储地址,再经过 1 次读取对象操作就可以完成搜索。 稠密索引:一个索引项对应数据表中一个对象的索引结构。当对象在外存中按加入顺序存放而不是按关键码有序存放时必须采用稠密索引结构,这时的索引结构叫做索引非顺序结构。 稀疏索引:当对象在外存中有序存放时,可以把所有 n 个对象分为 b 个子表(块)存放,一个索引项对应数据表中一组对象(子表)。 在子表中, 所有对象可能按关键码有序地存放, 也可能无序地存放。但所有这些子表必须分块有序,后一个子表中所有对象的关键码均大于前一个子表中所有对象的关键码。它们都存放在数据区中。另外建立一个索引表。 索引表中每一表目叫做索引项,它记录了子表中最大关键码max_key以及该子表在数据区中的起始位置obj_addr。 各个索引项在索引表中的序号与各个子表的块号有一一对应的关系:第 i 个索引项是第 i 个子表的索引项, i = 0, 1, …, n-1。这样的索引结构叫做索引顺序结构。 对索引顺序结构进行搜索时,一般分为两级搜索。 先在索引表 ID 中搜索给定值 K,确定满足 ID[i-1].max_key K ? ID[i].max_key 的 i 值,即待查对象可能在的子表的序号。 然后再在第 i 个子表中按给定值搜索要求的对象。 索引表是按max_key有序的,且长度也不大,可以对分搜索,也可以顺序搜索。 各子表内各个对象如果也按对象关键码有序,可以采用对分搜索或顺序搜索;如果不是按对象关键码有序,只能顺序搜索。 索引顺序搜索的搜索成功时的平均搜索长度 ASLIndexSeq = ASLIndex + ASLSubList 其中,ASLIndex 是在索引表中搜索子表位置的平均搜索长度,ASLSubList 是在子表内搜索对象位置的搜索成功的平均搜索长度。 设把长度为 n 的表分成均等的 b 个子表,每个子表 s 个对象,则 b = ?n/s?。又设表中每个对象的搜索概率相等,则每个子表的搜索概率为1/b,子表内各对象的搜索概率为 1/s。 若对索引表和子表都用顺序搜索,则索引顺序搜索的搜索成功时的平均搜索长度为 ASLIndexSeq = (b+1)/2+(s+1)/2 = (b+s)/2 +1 索引顺序搜索的平均搜索长度不仅与表中的对象个数 n 有关,而且与每个子表中的对象个数 s 有关。在给定 n 的情况下,s 应选择多大? 利用数学方法可以导出,当 s = 时,ASLIndexSeq取极小值 +1。 这个值比顺序搜索强,但比对分搜索差。但如果子表存放在外存时,还要受到页块大小的制约。 若采用对分搜索确定对象所在的子表,则搜索成功时的平均搜索长度为 ASLIndexSeq = ASLIndex + ASLSubList ? log2 (b+1)-1 + (s+1)/2 ? log2(1+n / s ) + s/2 倒排表 (Inverted Index List) 对包含有大量数据对象的数据表或文件进行搜索时,最常用的是针对对象的主关键码建立索引。主关键码可以唯一地标识该对象。用主关键码建立的索引叫做主索引。 主索引的每个索引项给出对象的关键码和对象在表或文件中的存放地址。 但在实际应用中有时需要针对其它属性进行搜索。例如,查询如下的职工信息: (1) 列出所有教师的名单; (2) 已婚的女性职工有哪些人? 这些信息在数据表或文件中都存在,但都不是关键码,为回答以上问题,只能到表或文件中去顺序搜索,搜索效率极低。 因此,除主关键码外,可以把一些经常搜索的属性设定为次关键码,并针对每一个作为次关键码的属性,建立次索引。 在次索引中,列出该属性的所有取值,并对每一个取值建立有序链表,把所有具有相同属性值的对象按存放地址递增的顺序或按主关键码
您可能关注的文档
- 仙湖植物园---我们的精神家园.ppt
- 任务驱动型作文指导(生命需要敬畏).ppt
- 仿句练习70例.doc
- 仿写句子4.ppt
- 任务四知识点 变频器的多段速度运行.ppt
- 任务二 绘制四棱柱的三面投影.ppt
- 企业信息化实施的硬件部署.ppt
- 企业局域网组建7-1.ppt
- 企业形态学-1.ppt
- 企业战略管理第01章.ppt
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
最近下载
- 纸电融合背景下高校图书馆中文图书纸电协调采购的现状与对策研究.docx VIP
- 2023广东中山市人大常委会办公室招聘雇员1人笔试备考试题及答案解析.docx VIP
- DDI 有效沟通学员手册.doc VIP
- 《疼痛评估工具》课件.ppt VIP
- 动物皮水解复合酶及其在动物皮提取胶原蛋白中的应用.pdf VIP
- 《中国传统文化》课件 2.2 道家思想及其人生模式.pptx
- 消防泵房分项工程技术交底.docx VIP
- 黄岭尾矿库安全风险辨识评估报告.doc VIP
- 专题08 整本书阅读(全国通用)(解析版)十年(2016-2025)高考语文真题分类汇编.docx
- 三星级高中评估标准及评价细则.docx VIP
文档评论(0)