当前课程知识点:数据结构(下) > 第八章 高级搜索树(下) > (xa3)红黑树:插入 > 08XA3-6 归纳回味
我们来对双红修正算法的复杂度做一分析
首先这里无非牵涉到两种基本的操作
也就是3+4重构 以及对节点颜色的重新定义
二者都是局部的基本操作 各自只需常数时间
因此我们只需统计 在整个的修正过程中
二者各自总共执行了多少次
这是整个修正算法的流程图
可以看到通过判断叔父节点的颜色
无非两个分支 其中叔父节点为黑的这个分支相对简单
我们只需做一次局部的3+4调整
再做常数次的染色操作 即可完成调整
也就是说 在这种情况下 旋转至多一轮2次
而染色呢 至多牵涉到两个节点 都是常数
当然叔父节点为红色的情况 略微复杂
因为尽管在每一个节点处 我们只需做常数次的重染色
但是事情未必彻底解决
因为由此可能导致在更高的节点处进而出现双红缺陷
此时我们还需要重新回到算法的入口
并等效的去试图修复新节点的双红缺陷
在最坏的情况下 这种情形有可能会出现多达logn次
尽管如此 请注意在这样一个可能的循环过程中
我们只需做重染色 而不必做任何的结构调整
也就是说 在这种情况下
尽管在每一个高度上 我们都有可能会执行若干次重染色
但是绝对不会执行任何的旋转
反过来 通过这个流程图 我们也不难发现
无论整个修正算法如何运转
其间一旦做过结构的调整 整个算法就会随即结束
因此总体而言 整个修复过程中
我们的确可能会执行很多次染色操作
但是就我们更为关注的重构操作而言
在整个修复过程中 至多只会执行常数次
你应该还记得 我们为什么会更加在意重构操作
是的 这类操作 对于持久化结构而言是至关重要的
当然对于插入操作的这些性能要求
AVL树同样是满足的
然而正如我们在此前所指出的
AVL的删除操作却不具有这样的性能
那么 红黑树呢
让我们拭目以待
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-OJ系统说明
--关于OJ
--1-注册与登录
--2-界面与选课
--3-提交测试
-关于课程教材与讲义
--课程教材与讲义
-关于讨论区
--关于讨论区
-微信平台
--html
-PA晋级申请
--PA晋级
-(a)概述
--07A-1 纵览
--07A-5 接口
-(a)概述--作业
-(b1)BST:查找
-第七章 二叉搜索树--(b1)BST:查找
-(b2)BST:插入
-(b2)BST:插入--作业
-(b3)BST:删除
-第七章 二叉搜索树--(b3)BST:删除
-(c)平衡与等价
-(c)平衡与等价--作业
-(d1)AVL树:重平衡
-第七章 二叉搜索树--(d1)AVL树:重平衡
-(d2)AVL树:插入
-(d2)AVL树:插入--作业
-(d3)AVL树:删除
-(d3)AVL树:删除--作业
-(d4)AVL树:(3+4)-重构
-(d4)AVL树:(3+4)-重构--作业
-本章测验
--章节测验
-(a1)伸展树:逐层伸展
--习题
-(a2)伸展树:双层伸展
--习题
-(a3)伸展树:算法实现
--习题
-(b1)B-树:动机
--习题
-(b2)B-树:结构
--习题
-(b3)B-树:查找
--习题
-(b4)B-树: 插入
--习题
-(b5)B-树: 删除
--习题
-(xa1)红黑树:动机
--习题
-(xa2)红黑树:结构
--习题
-(xa3)红黑树:插入
--习题
-(xa4)红黑树:删除
-本章测验
--习题
-(b)散列:原理
--09B-3 数组
--09B-4 原理
--09B-5 散列
--09B-6 冲突
--习题
-(c)散列:散列函数
--习题
-(d1)散列:排解冲突(1)
--习题
-(d2)散列:排解冲突(2)
--习题
-(e)桶/计数排序
--习题
-本章测验
--本章测试
-(a1)需求与动机
--习题
-(a2)基本实现
--习题
-(b1)完全二叉堆:结构
--习题
-(b2)完全二叉堆:插入与上滤
--习题
-(b3)完全二叉堆:删除与下滤
--习题
-(b4)完全二叉堆:批量建堆
--习题
-(c)堆排序
--习题
-(xa1)左式堆:结构
--习题
-(xa2)左式堆:合并
--习题
-(xa3)左式堆:插入与删除
-本章测验
--本章测试
-(a)ADT
--习题
-(b1)串匹配
--习题
-(b2)蛮力匹配
--习题
-(c1)KMP算法:从记忆力到预知力
--习题
-(c2)KMP算法:查询表
--习题
-(c3)KMP算法:理解next[]表
--习题
-(c4)KMP算法:构造next[]表
--习题
-(c5)KMP算法:分摊分析
--习题
-(c6)KMP算法:再改进
-(d1)BM_BC算法:以终为始
-(d2)BM_BC算法:坏字符
-(d3)BM_BC算法:构造bc[]
-(d4)BM_BC算法:性能分析
-(e1)BM_GS算法:好后缀
-(e2)BM_GS算法:构造gs表
-(e3)BM_GS算法:综合性能
-(f1)Karp-Rabin算法:串即是数
-(f2)Karp-Rabin算法:散列
-本章测验
--本章测试
-(a1)快速排序:算法A
-- 12a1-5: 实例
--习题
-(a2)快速排序:性能分析
--习题
-(a4)快速排序:变种
-(b1)选取:众数
-(b3)选取:通用算法
--习题
-(c1) 希尔排序:Shell序列
--习题
-(c2)希尔排序:逆序对
-本章测验
--本章测试