伸展树算法分析与设的计.docVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
伸展树算法分析与设的计

《计算机算法设计与分析》 伸展树算法分析 院 - 系: 软件学院 专 业: 软件工程 年 级: 2014级 学生姓名: 彭行雄 学 号: 导 师: 肖如良 2014年11月 目录 一、伸展树背景 1 1.查找树的相关问题 1 2.问题引入 1 3.伸展树的产生 1 二、伸展树的概念 2 1.术语介绍 2 2. 伸展树结构 2 3. 伸展树的核心思想 2 三、伸展树的伸展与基本操作 3 1. 自底向上伸展 3 2. 自顶向上伸展 4 3. 自底向上伸展和自顶向下伸展的比较 6 4.自顶向下伸展的核心代码: 6 5.伸展树的基本操作 7 四、实验设计 9 五、总结 11 附录:伸展树实现代码(java) 12 参考书目 22 一、伸展树背景 1.查找树的相关问题 各种查找树存在不足。比如:对于一个有n个节点的平衡树,虽然最坏情况下每次查找的时间复杂度不会超过O(logn),但是如果访问模式不均匀,平衡树的效率就会受到影响。此外,它们还需要额外的空间来存储平衡信息。 这些查找树的设计目标都是减少最坏情况下单次操作时间,但是查找树的典型应用经常需要执行一系列的查找操作,此时更关心的性能指标是所有这些操作总共需要多少时间。对于此类应用,更好的目标就是降低操作的摊平时间,此处的摊平时间是指在一系列最坏情况的操作序列中单次操作的平均时间。获得摊平效率的一种方法 就是使用“自调整”的数据结构。 和平衡的或是其它对结构有明确限制的数据结构比起来,自调整数据结构有以下几个优点: 1、从摊平角度而言,它们忽略常量因子,因此绝对不会比有明确限制的数据结构差。而且由于它们可以根据使用情况进行调整,于是在使用模式不均匀的情况下更加有效。 2、由于无需存储平衡或者其它的限制信息,它们所需的空间更小。 3、查找和更新算法概念简单,易于实现。 当然,自调整结构也有潜在的缺点: 1、它们需要更多的局部调整,尤其是在查找期间。(那些有明确限制的数据结构仅需在更新期间进行调整,查找期间则不用) 2、一系列查找操作中的某一个可能会耗时较长,这在实时应用程序中可能是个不足之处。 在讨论AVL树时,主要关注点在于保持树的高度平衡,因此插入和删除都要调整平衡。然而,在实际应用中,我们更关心的是如何快速的搜索以及插入和删除,而不是树的状。 根据研究数据表明,大部分对数据的访问都符合二八定律,即80%的访问都集中在20%的数据上。那么在普通二叉树中进行简单的访问,并不能提高效率。 因此,对于这个80%的频繁访问,如果第二次访问时间小于第一次访问时间,将会极大提高访问效率。 2.问题引入 在讨论AVL树时,主要关注点在于保持树的高度平衡,因此插入和删除都要调整平衡。然而,在实际应用中,我们更关心的是如何快速的搜索以及插入和删除,而不是树的形状。 根据研究数据表明,大部分对数据的访问都符合90-10规则,即90%的访问都集中在10%的数据上。那么在普通二叉树中进行简单的访问,并不能提高效率。 因此,对于这个90%的频繁访问,如果第二次访问时间小于第一次访问时间,将会极大提高访问效率。 3.伸展树的产生 假设想要对一个二叉查找树执行一系列的查找操作。为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法, 在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。splay tree应运而生。splay tree是一种自调整形式的二叉查找树,它会沿着从某个节点到树根之间的路径,通过一系列的旋转把这个节点搬移到树根去。 二、伸展树的概念 1.术语介绍 1)摊平时间:在一系列最坏情况的操作序列中单次操作的平均时间 自调整数据结构:根据使用情况进行调整,结点无需存储平衡或其他限制信息 自底向上的伸展树:使用比简单旋转到根策略稍微复杂一点的方法使项旋转到根而形成的树 自顶向下的伸展树:在实践中,与自底向上的伸展树相比,自顶向下的伸展树更高效,与红黑树情况一样 伸展树是改进的二叉搜索树,是由John Edward Hopcroft和Robert Endre Tarjan于1985年共同发表的,属于自调整数据结构,可以证明一系列的操作中,每一步“摊平时间”的复杂度都是O(log2n) 伸展树结构 伸展树属于二叉查找树,即

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档