上个月还在舔\(splay\):\(FHQ_treap\)太好打了吧真香
前言
还是建议先把\(splay\)学好再看,讲得会比较粗略(但该有的不会少),或者左转其他文章
\(FHQ_treap\)是一种常数小同时好打的平衡树
其实就是利用附加权值\((head)\)来维护树的平衡性,同时树内有二叉搜索树性质
附加权值是随机给的,随机情况下使得树比较平衡,达到均摊\(log\)级别
合并
把两棵树\((A,B)\)合并起来,其中\(A\)树的所有值\(<B\)树的所有值
我们在维护附加权值\((head)\)的同时实现合并,由于大小关系的前提比较好做
分裂
分裂有两种分裂,按值分与按排名分,传一个参数\(x\)进去把原树分成两棵树
即关键字\(≤x\)的一棵,剩下结点为另一棵