Finden median in O(1) in den binären Baum

Angenommen ich habe eine ausgewogene BST (binary search tree). Jeder Knoten enthält einen speziellen Bereich count zählt alle Nachkommen des Knotens + der Knoten selbst. Sie nennen diese Datenstruktur order statistics binary tree.

Diese Datenstruktur unterstützt zwei Operationen in O(logN):

  • rank(x) -- Anzahl der Elemente, die kleiner sind als x
  • findByRank(k) -- den Knoten finden, der mit rank == k

Nun möchte ich einen neuen Vorgang hinzufügen median() zu finden, der median. Kann ich davon ausgehen diese operation ist O(1) wenn der Baum ausgeglichen ist?

  • ich denke, der median wäre die Wurzel des Baumes
  • Ich Stimme mit Gir. Aber dies ist nur der Fall, wenn der Baum vollständig ausgeglichen ist.
InformationsquelleAutor Michael | 2012-08-10
Schreibe einen Kommentar