我已经学习了Treap和Splay 树,并使用它们解决了一些问题。
理论上,它们的平均复杂度为O(log n),但在最坏的情况下,Treap 的复杂度为O(n),而Splay 树的平均复杂度为 O (log n)。
Treap在哪种情况下会出现最坏的情况(因为它的优先级是随机选择的),并且Treap真的比Splay 树慢吗?我已经使用 Splay tree和Treap解决了 SPOJ 上的一些任务,使用Treap的解决方案比使用 Splay tree的解决方案要快一些(大约0.2s)。那么哪个实际上更快,我应该主要使用哪个以及何时使用?