初识splay tree (二)

本文介绍了伸展树(Splay Tree)的基本概念、产生原因、解决的问题和核心操作。伸展树是一种自调整的二叉查找树,通过伸展操作将频繁访问的节点移至根部,保证了均摊操作复杂度为O(log N)。此外,它支持插入、删除和区间维护,优于平衡二叉树和线段树。文章还提及了区间修改时的Lazy Tag应用原则。
摘要由CSDN通过智能技术生成

上周五夜里三点多更了一篇博客 初识splay tree (一) ,却只来得及写了一道简单模板题。今天补充一些关于splay tree 的实质性的内容。

splay 的产生:

splay 诞生的出发点是基于节点 [访问局部性] 的启发式优化:

Wiki
伸展树(英语:Splay Tree)是一种二叉查找树,它能在O(log n)内完成插入、查找和删除操作。它是由丹尼尔·斯立特(Daniel Sleator)和罗伯特·塔扬在1985年发明的1

在伸展树上的一般操作都基于伸展操作:假设想要对一个二叉查找树执行一系列的查找操作,为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法, 在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。伸展树应运而生。伸展树是一种自调整形式的二叉查找树,它会沿着从某个节点到树根之间的路径,通过一系列的旋转把这个节点搬移到树根去。

splay可以解决的问题

可以看出splay树同样是二叉查找树的一种,核心在于每次访问都把该节点提至根(通过旋转操作:zig、zag),可以证明这种方法使得各种操作均摊复杂度最坏为log(N),证明过程详细见

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值