- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[幼儿园健康发展维生素--教师之礼仪篇二
文件索引结构与倒排表 2007/05/14 本讲主要内容: 平衡二叉树 文件的索引结构 倒排表与倒排索引 类型无关的软件平台架构 字典的二分查找 二分查找(binary search) 要求: 查找表为有序表,即表中 结点按关键字有序排列,并且采用顺序存储结构。 基本思想: 确定搜索区间的中点位置: 然后将待查的key值与range[mid].key比较:若相等,则查找成功并返回此位置,否则确定新的查找区间,继续二分查找. 动态查找表结构 —— 二叉排序树(又称二叉搜索树) 以关键码值为结点的二叉树 如果任一结点的左子树非空,则左子树中的所有结点的关键码都小于根结点的关键码; 如果任一结点的右子树非空,则右子树中的所有结点的关键码都大于根结点的关键码。 二叉排序树的插入与构造 最佳二叉排序树的构造 (1) 先将字典元素关键码排序。 (2) 对每个关键码按二分法在排序关键码序列中执行检索,将检索中遇到的还未在二叉排序树中的关键码插入二叉排序树中。 —— 按二分查找中所遇到的节点依次插入二叉排序树。 举例(记录二分查找的过程) 对于K={27,73,10,5,18,41,99,51,25},构造最佳二叉排序树的过程如下: 首先将它们排序为:5,10,18,25,27,41,51,73,99, 然后从空二叉树出发,在排序的关键码序列中用二分法检索5,检索中遇到的结点为27,10,5,将这三个结点插入二叉排序树。 再检索第二个结点10,遇到的结点为27,10,二叉排序树中已经有这两个结点。 再检索第三个结点18,…。 得到的插入次序为27,10,5,18,25,51,41,73,99。 静态查找表索引结构 索引 索引是索引项的集合,一个索引项是由一个结点的关键码和该结点的存储位置组成的关联。 索引的实质还是字典,而且是元素类型相同的等长结点的字典。所有关于字典的讨论都适合于索引;所有字典的实现也可以用来组织索引。 文件与索引结构 —— 打开一个文件 从文本文件中读入数据集合 将数据集转换为记录集 通过记录的某一项属性值反过来查找到这个记录的存放地址,或者记录对应的关键码。我们称这种索引为倒排索引(inverted index)。 倒排索引的建立 包含数据逻辑层的软件架构 动态查找表 —— 平衡二叉排序树 以上的“最佳”二叉排序树,不仅构造的时间代价很大,而且很难动态的保持。通常用于表示一旦构造后就不改动的静态字典; 对于动态字典,为了能够在进行元素的插入和删除操作时,较快地对二叉排序树进行调整,通常不要求二叉排序树总是保持“最佳的”检索效率,而是希望达到一种比较容易调整的“较佳”的状态。 平衡二叉排序树, 又称AVL树,要求从整体上看,在动态插入或删除后,每个结点的左右子树能够基本保持平衡。不会出现过分倾斜的现象,从而使得平均检索长度保持比较短。 结点右子树高度与左子树高度之差称为该结点的平衡因子,平衡二叉排序树中每个结点的平衡因子只能是1、0或-1。 插入的影响 在平衡二叉排序树中插入新结点时,如果新结点插入后不影响其父结点为根的子树高度,则不会破坏整个二叉排序树的平衡;反之,若父结点为根的子树高度增加了,则可能引起一连串的反映。 其结果又有两种可能,一种是在其祖先的某一层上不再影响子二叉排序树的高度,则整个二叉排序树仍然是平衡的;另一种是在其祖先的某一层上破坏了平衡的要求,使整个二叉排序树不再是AVL树。 最小不平衡子树 处理失去平衡的方法为首先找出最小不平衡子树(指离插入结点最近,且以平衡因子绝对值大于1的结点为根的子树), 在保证排序树性质的前提下,调整最小不平衡子树中各结点的连接关系,以达到新的平衡。 AVL树调整平衡的原则 LL型调整 破坏平衡的原因是由于在A的左子女(L)的左子树(L)中插入新结点,使A的平衡因子由 -1变为 -2而失去平衡。 调整不破坏节点间的序关系。 调整不增加子树的高度。 LL-调整规则 将A的左子女B提升为新二叉树的根;原来的根A连同其右子树γ向右下旋转成为B的右子树;B的原右子树β作为A的左子树。 调整后仍保持二叉排序树的性质,而且整个(子)二叉树的高度与插入前相同,因此不会影响包含它的更大(子)二叉树的平衡。 RR型调整 破坏平衡的原因是由于在A的右子女(R)的右子树(R)中插入结点,使A的平衡因子由1变为2而失去平衡。 调整规则:与LL型的对称。将A的右子女B提升为新二叉树的根;原来的根A连同其左子树向左下旋转成为B的左子树;B的原左子树作为A的右子树。 LR型调整 破坏平衡的原因是由于在A的左子女(L)的右子树(R)中插入结点,使A的平衡因子由-1变为-2而失去平衡。 若α、β、γ、δ全
文档评论(0)