高级搜索树
Posted yongchao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级搜索树相关的知识,希望对你有一定的参考价值。
高级搜索树
伸展树
逐层伸展 宽松平横
局部性
Locality
: 刚被访问过的数据,极有可能很快
地再次
被访问--->信息处理中常见 //BST
BST:刚刚被访问过的节点,极有可能很快
的再次
被访问
下一将要访问的节点,极有可能就在刚被访问过的节点的附近
连续的m次
查找(m >> n =|BST|) ,采用AVL共需要O(mlogn)
时间
个人理解:在足够长的时间中,把被访问次数足够多的节点放到前面,增加访问效率
逐层伸展
节点v一旦被访问,随即转移至树根
--->通过旋转的方法移动二叉树的节点。
zig(顺时针)、zag(逆时针)
一步一步往上爬
自下而上,逐层单旋
zig( v->parent)
zag( v->parent)
直到v最终被`推送`至根
最坏情况
旋转次数呈周期性
的算术级数
演变:每一周期累计Omega left ( n^{2}
ight )
分摊Omega left ( n
ight )
---->Latex公式编辑器
双层伸展
构思精髓:向上追溯两层
,而非一层
反复考察祖孙三代
:g=parent(p),p=parent(v),v
根据他们的相对位置,经两次旋转
使得v上升两层,成为(子)树根
zig-zag zag-zig 与AVL树双旋
完全等效 与逐层伸展
别无二致
zig-zig zag-zag -->先移动祖父节点,然后移动父节点
以上是关于高级搜索树的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段