单旋SPLAY的优化

来源:互联网 发布:第二批网络禁书目录 编辑:程序博客网 时间:2024/04/30 14:41

单旋splay的优点是好写,缺点就是太慢了。

经过以前大量的正版splay和单旋splay之间的对比发现单旋splay大概要慢50%。。。

加上如下几个优化后单旋SPLAY绝对可以媲美正版SPLAY,是PNOI,NOI,居家旅行,哔~~~~~~,必备良数据结构

 

关于单旋splay有如下几个优化(不会加大代码量,要不然还要单旋splay干嘛):

 

1.对于大量插入操作,写一个过程:buildtree,建议一颗完全二叉树插入树中,很多题目一开始就需要buildtree,所以不会增加代码,在NOI05 sequence中加入这个优化可以快3倍。。。

 

2.这是今天早上突然发现的优化,在旋转的过程中如下:

然后再写个新的splay过程:


实际上第二个update是不需要的,这样就可以减少一半的update次数,对于一颗需要维护大量信息的splay树这可是神级优化。

 

说了这么多还是我这菜鸟想在编程复杂度和时间空间复杂度之间找到平衡点。

对于那些本身就很IMBA,5分钟5KB的神牛是不会稀罕代码量的。