https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf にm,n (m≤n)要素のTreapのunionで期待計算量がO(mlog(n/m))であるものが紹介されている。これを使うと次のことができる:
1要素のTreapがN個与えられたとし、これらのTreapに任意の順番でN−1回unionを適用してN要素のTreapを作るとする。この時、全体の期待計算量はO(NlogN)である。
これはマージテクと同じように理解できる:
まず、定数Bが存在してm,n (m≤n)要素のTreapのunionの期待計算量はBmlog(n/m)以下である。
求める計算量をT(N)とする。C>0が存在してN未満の整数xについてはT(x)≤Cxlogxが成り立っていると仮定する。このとき、T(N)≤CNlogNであることを示せばよい。この際、C≥Bとしてよい。
T(N)≤m+n=Nmax(Bmlogmn+T(m)+T(n))
であるから、任意の分割N=m+n (0<m≤n)についてBmlog(n/m)+T(m)+T(n)≤CNlogNが成り立つことを示せばよい。実際、次のように示せる:
≤ ≤ = = = = = = ≤ Bmlogmn+T(m)+T(n)Bmlogmn+Cmlogm+CnlognC(mlogmn+mlogm+nlogn)C(mlogmn+mlogm+nlogmnm)C(mlogmn+mlogm+nlogmn+nlogm)C((m+n)logmn+(m+n)logm)C(Nlogmn+Nlogm)C(Nlogn−Nlogm+Nlogm)CNlognCNlogN
(log1=0 問題があるのであまり正確でない。)