バランスの取れた BST (二分探索木) があるとします。各ツリー ノードには、count
そのノードのすべての子孫 + ノード自体をカウントする特別なフィールドが含まれています。彼らはこれをデータ構造と呼んでいますorder statistics binary tree
。
このデータ構造は、O(logN) の 2 つの操作をサポートしています。
rank(x)
-- より小さい要素の数x
findByRank(k)
rank
-- ==でノードを見つけますk
median()
ここで、中央値を見つけるための新しい操作を追加したいと思います。ツリーのバランスがとれている場合、この操作は O(1) であると想定できますか?