複雑度
分割操作は、複雑度 AVLツリーに実装できますO(logn)O(logn)O(\log n)か?このトピックに関する記事または特定の情報へのリンクに興味があります。 分割操作は、キーに基づいて、AVLツリーを2つの派生AVLツリーに分割します。派生したツリーの1つは、すべてのキーが元のキーよりも小さいすべての頂点を含み、2番目のツリーは残りの頂点を含みます。 これはO(log2n)O(log2n)O(\log^2 n)時間で実行できることを知っています。複雑さ実装へのリンクはO(log2n)O(log2n)O(\log^2 n)次のとおりです。https: //code.google.com/p/self-balancing-avl-tree/ また、2つのAVLツリーをマージして、O(logn)O(logn)O(\log n)時間で、一方のツリーのキーがすべて他方のキーよりも小さくなるようにする方法も知っています。以下は、複雑度実装O(logn)O(logn)O(\log n)です。 def Merge(l, r) { if (!l || !r) return l ? l : r; if (l->h <= r->h) r->l = Merge(l, r->l), Rebalance(r); else l->r = Merge(l->r, r), Rebalance(l); }