美文网首页
算法导论数据结构的扩张笔记

算法导论数据结构的扩张笔记

作者: 琦思妙想君 | 来源:发表于2018-09-27 18:18 被阅读15次

动态顺序统计

1.将红黑树扩展为顺序统计树,可以在 O(lgn) 时间内确定任何的顺序统计量
2.扩展方法为红黑树的结点增加一个新属性 size,表示以该结点为根的子树包含的结点数
3.查找具有给定秩的元素(如第 i 小的元素)
r = x.left.size + 1 ,比较 r 和 i 决定是递归还是结束
4.确定一个元素的秩
思路是从给定的结点上升直至根结点,如果过程中上升的指针是右孩子,总的秩就要加上左孩子的 size + 1,如果是左孩子就不用加
5.对子树规模的维护
顺序统计树在插入和删除操作时,只要对红黑树的相应操作简单修改即可。分别的,第一阶段的升级操作修改路径上每个结点的 size,第二阶段的旋转操作中更新被旋转结点的 size,总共的性能消耗为 O(lgn)

如何扩张数据结构

这里讲的是扩张数据结构的方法论
扩张数据结构的 4 个步骤:
1.选择一种基础数据结构
2.确定基础数据结构中要维护的附加信息
3.检验基础数据结构上的基本修改操作能否维护附加信息
4.设计一些新操作

可以证明,已红黑树为基础数据结构时,某些类型的附加信息可以在插入和删除操作时顺便完成,且不影响其渐进性能(即可以在 O(lgn) 时间内完成)

区间树

本节利用上一节的方法论将红黑树扩展成区间树,每个节点都包含一个区间,以区间的左界作为红黑树的 key
1.增加了附加信息区间的右界的 max 值
2.证明维护这个附加信息不影响插入删除的渐进性能
3.设计了新的操作查找:在 O(lgn) 时间内完成从区间树中查找与给定区间重叠的区间,并给出了证明

相关文章

  • 算法导论数据结构的扩张笔记

    动态顺序统计 1.将红黑树扩展为顺序统计树,可以在 O(lgn) 时间内确定任何的顺序统计量2.扩展方法为红黑树的...

  • 数据结构与算法参考书籍

    数据结构与算法分析 算法 算法导论 java编程思想

  • 算法导论笔记

    读算法导论 记录一下读算法导论的过程 1.算法 如果问我什么是算法(思考中) 利用数据结构,考虑时间以及空间效率,...

  • 算法与数据结构

    数据结构 数据结构与算法分析_Java语言描述(第2版) 算法 计算机算法基础算法导论编程之法_面试和算法心得 c...

  • #算法与数据结构书籍

    数据结构 数据结构与算法分析_Java语言描述(第2版) 算法 计算机算法基础算法导论编程之法_面试和算法心得 c...

  • 数据结构和算法汇总

    数据结构和算法以weiss的数据结构和算法,以及算法导论为纲,另外参考July和左程云的书籍和代码。https:/...

  • 长期计划安排

    一、数据结构与算法分析 参考书 数据结构与算法分析:C语言描述 算法(第四版) 算法导论 课程相关 MOOC 邓俊...

  • 第一章 绪论

    本系列读书笔记参考自数据结构与算法经典问题解析第二版内容,习题答案部分有误,已勘正,部分严格证明参考算法导论第三版...

  • Java技术书单

    算法/数据结构1.《算法(第4版)》2.《算法导论》3.《算法图解》 Java虚拟机《深入理解Java虚拟机》 并...

  • 进阶

    首先数据结构,c++,算法导论,c专家,c缺陷等。 不在于数量,在于质量,fighting!

网友评论

      本文标题:算法导论数据结构的扩张笔记

      本文链接:https://www.haomeiwen.com/subject/kycyoftx.html