伸展树:逐层伸展
来源:互联网 发布:mac ansible 编辑:程序博客网 时间:2024/06/05 19:07
局部性
Locality: 刚被访问过的数据,极有可能很快地再次被访问。这一现象在信息处理过程中屡见不鲜。
BST: 刚刚被访问过的节点,极有可能很快地再次被访问。
连续的m次查找(m >> n = |BST|),采用AVL一共需要O(mlogn)的时间。
利用局部性,能否更快呢?
策略:节点一旦被访问,随即调整到树根。
逐层伸展
节点V一旦被访问,随即转移到树根
一步一步往上爬,自下而上,逐层单旋
zig(v -> parent)
zag(v -> parent)
最终V被推送到树根
实例
最坏情况
旋转次数呈周期性的算术级数演变:每一周期累计Ω(n^2),分摊Ω(n)!
低效率的根源
1、全树拓扑始终呈现单链表结构,等价于一维列表。
2、被访问节点的深度,呈周期性的算术级数演变,平均为Ω(n)
n-1, n-2, n-3, ..., 3, 2, 1; n-1, ...
1 0
- 伸展树:逐层伸展
- 伸展树:双层伸展
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- 伸展树
- android insertdrwawable基本使用
- POJ1088 滑雪
- struts中的表单
- Cousera-Using python to access web data(第2~4周笔记)
- web.xml中load-on-startup的作用
- 伸展树:逐层伸展
- 递归更新svn路径的bat脚本
- hibernate双向多对多关联
- Day50:Fail to interview Migu,pass a travel towards XiaMen
- 扫描线算法实现
- hdu 5949 Relative atomic mass 2016ACM/ICPC沈阳赛区现场赛B
- javaee之hibernate之many-to-one
- codeforces305b
- 如何在VS2013中使用caffe接口