数据结构与算法分析第八章查找1.ppt

  1. 1、本文档共151页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter 8 Search 通常称用于有哪些信誉好的足球投注网站的数据集合为有哪些信誉好的足球投注网站结构,它是由同一数据类型的对象(或记录)组成 在每个对象中有若干属性,其中有一个属性,其值可唯一地标识这个对象。称为关键码。使用基于关键码的有哪些信誉好的足球投注网站,有哪些信誉好的足球投注网站结果应是唯一的。但在实际应用时,有哪些信誉好的足球投注网站条件是多方面的,可以使用基于属性的有哪些信誉好的足球投注网站方法,但有哪些信誉好的足球投注网站结果可能不唯一 实施有哪些信誉好的足球投注网站时有两种不同的环境 静态环境 有哪些信誉好的足球投注网站结构在插入和删除等操作的前后不发生改变 ? 静态有哪些信誉好的足球投注网站表 查找算法的评价指标 查找成功:最少比较次数 最多比较次数 平均比较次数 查找失败:最少比较次数 最多比较次数 平均比较次数  查找成功:最少比较次数  1 最多比较次数  n  平均比较次数 (n+1)/2 查找失败:最少比较次数 n+1 最多比较次数 n+1 平均比较次数 n+1 基于有序顺序表的折半有哪些信誉好的足球投注网站 设n个对象存放在一个有序顺序表中,并按其关键码从小到大排好了序 折半有哪些信誉好的足球投注网站时, 先求位于有哪些信誉好的足球投注网站区间正中的对象的下标mid,用其关键码与给定值x比较 1.Element[mid].key==x 有哪些信誉好的足球投注网站成功 2.Element[mid].keyx 把有哪些信誉好的足球投注网站区间缩小到表的前半部分,继续折半有哪些信誉好的足球投注网站 3.Element[mid].keyx 把有哪些信誉好的足球投注网站区间缩小到表的后半部分,继续折半有哪些信誉好的足球投注网站 如果有哪些信誉好的足球投注网站区间已缩小到一个对象,仍未找到想要有哪些信誉好的足球投注网站的对象,则有哪些信誉好的足球投注网站失败 有哪些信誉好的足球投注网站成功时检测指针停留在树中某个结点 有哪些信誉好的足球投注网站不成功时检测指针停留在某个外结点(失败结点) 有序顺序表的折半有哪些信誉好的足球投注网站的判定树 ( 10, 20, 30, 40, 50, 60 )  查找成功:最少比较次数  ? 最多比较次数  ?  平均比较次数 ? 查找失败:最少比较次数 ? 最多比较次数 ? 平均比较次数 ? 分块查找 查找过程:将表分成几块,块内无序,块间有序;先确定待查记录所在块,再在块内查找 适用条件:分块有序表 算法实现 用数组存放待查记录,每个数据元素至少含有关键字域 建立索引表,每个索引表结点含有最大关键字域和指向本块第一个结点的指针 分块查找方法评价 n 个结点的二叉有哪些信誉好的足球投注网站树的数目 3 个结点的二叉有哪些信誉好的足球投注网站树 结点的平衡因子 (balance factor) 每个结点附加一个数字, 给出该结点右子树的高度减去左子树的高度所得的高度差, 这个数字即为结点的平衡因子 AVL树任一结点平衡因子只能取 -1, 0, 1 如果一个结点的平衡因子的绝对值大于1, 则这棵二叉有哪些信誉好的足球投注网站树就失去了平衡, 不再是AVL树 如果一棵二叉有哪些信誉好的足球投注网站树是平衡的, 且有 n个结点,其高度可保持在 O(log2n),平均有哪些信誉好的足球投注网站长度也可保持在O(log2n) 平衡化旋转 如果在一棵平衡的二叉有哪些信誉好的足球投注网站树中插入一个新结点,造成了不平衡。此时必须调整树的结构,使之平衡化 平衡化旋转有两类: 单旋转 (左旋和右旋) 双旋转 (左旋加右旋和右旋加左旋) 每插入一个新结点时, AVL 树中相关 结点的平衡状态会发生改变。因此, 在插入一 个新结点后,需要从插入位置沿通向根的路径回溯,检查各结点的平衡因子 如果在某一结点发现高度不平衡,停止回溯。从发生不平衡的结点起,沿刚才回溯的路径取直接下两层的结点 如果这三个结点处于一条直线上,则采用单旋转进行平衡化 单旋转可按其方向分为左单旋转和右单旋转, 其中一个是另一 个的镜像,其方向与不平衡的形状相关 如果这三个结点处于一条折线上,则采用双旋转进行平衡化 双旋转分为先左后右和先右后左两类 左单旋转 ( RotateLeft, L型 ) 在子树E中插入新结点,该子树 高度增 1导致结点 A的平衡因子 变成 +2,产生不平衡( L型 ) 以结点C为旋转轴,将结点A反时针旋转 在子树D中插入新结点, 该子树 高度增 1导致结点 A的平衡因子 变成 -2,产生不平衡( R型 ) 以结点B为旋转轴,将结点A顺时针旋转 在子树F或G中插入新结点,该子树 高度增 1 导致结点 A 的平衡因子变成 -2,产生不平衡( LR型 ) 首先以结点E为旋转轴,将结点B反时针旋转,以E代替原来B的位置,做左单旋转 再以结点E为旋转轴,将结点A顺时针旋转,做右单旋转 先右后左双旋转 (Ro

文档评论(0)

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

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

1亿VIP精品文档

相关文档