摘要: 替罪羊树 上一篇: "平衡树学习笔记(3) Splay" 替罪羊树可以说是最暴力的平衡树 但却跑的很快 有多暴力? 不是一条链影响复杂度吗? 暴力给你拍到一个vector里去(没错,整棵树暴力拍扁) 再重新建树,建出的树像线段树那样二分建来保证平衡 可谓是要多暴力有多暴力 在树套树上也有一些优势 $ 阅读全文
posted @ 2018-11-24 19:53 olinr 阅读(294) 评论(0) 推荐(0) 编辑
摘要: Splay 上一篇: "平衡树学习笔记(2) Treap" Splay是一个实用而且灵活性很强的平衡树 效率上也比较客观,但是一定要一次性写对 debug可能不是那么容易 Splay作为平衡树,它的平衡方式就是旋转 暴力旋转,赤裸裸的旋转,各种旋转 就是依靠玄学的旋转来保证自己的复杂度 不废话,上主 阅读全文
posted @ 2018-11-24 18:03 olinr 阅读(304) 评论(0) 推荐(0) 编辑
摘要: Treap 上一篇: "平衡树学习笔记(1) 简介" Treap是一个玄学的平衡树 为什么说它玄学呢? 还记得上一节说过每个平衡树都有自己的平衡方式吗? 没错,它平衡的方式是。。。。。。rand!!!! 注意,Treap是不依靠旋转平衡的!! 我认为它的思想是最好理解的,代码也简洁易懂(虽然慢了点) 阅读全文
posted @ 2018-11-24 15:32 olinr 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 平衡树是一个很神奇的数据结构 noip前,学了其两种实现方式,Splay和Treap,非常实用(虽然码量有点。。) 每个平衡树都是二叉查找树,保证$左孩子 \leq 自己 \leq 右孩子$ 因此,平衡树的中序遍历就是插入节点的有序序列(理解一下) 平衡树支持插入,删除,以及各种查询,以下面为例 $ 阅读全文
posted @ 2018-11-24 14:09 olinr 阅读(284) 评论(0) 推荐(0) 编辑