高级搜索树

高级搜索树

伸展树

逐层伸展 宽松平横

局部性

Locality: 刚被访问过的数据,极有可能很快再次被访问--->信息处理中常见 //BST

BST:刚刚被访问过的节点,极有可能很快再次被访问
下一将要访问的节点,极有可能就在刚被访问过的节点的附近
连续的m次 查找(m >> n =|BST|) ,采用AVL共需要O(mlogn)时间

个人理解:在足够长的时间中,把被访问次数足够多的节点放到前面,增加访问效率

逐层伸展

节点v一旦被访问,随即转移至树根
--->通过旋转的方法移动二叉树的节点。
zig(顺时针)、zag(逆时针)

一步一步往上爬

自下而上,逐层单旋
	zig( v->parent)
	zag( v->parent)
直到v最终被`推送`至根

最坏情况

旋转次数呈周期性算术级数演变:每一周期累计\Omega \left ( n^{2} \right ) 分摊\Omega \left ( n\right )---->Latex公式编辑器

双层伸展

构思精髓:向上追溯两层,而非一层
反复考察祖孙三代:g=parent(p),p=parent(v),v
根据他们的相对位置,经两次旋转使得v上升两层,成为(子)树根

zig-zag zag-zig 与AVL树双旋完全等效 与逐层伸展别无二致
zig-zig zag-zag -->先移动祖父节点,然后移动父节点

posted @ 2020-07-10 01:30  Theseus‘Ship  阅读(124)  评论(0编辑  收藏  举报
Live2D