Adams beschreibt einen Divide-and-Conquer-Algorithmus zum Finden der Vereinigung zweier Mengen (dargestellt als gewichtsausgeglichene binäre Suchbäume). Anschließend beschreibt er einen damals neuen "Hedge Union" -Algorithmus, von dem er behauptet, dass er den Divide-and-Conquer-Algorithmus verbessert. Er bietet jedoch keinen Beweis oder gar eine echte Erklärung dafür, warum es , geschweige denn, warum es schneller sein sollte als Teilen und Erobern.
Blelloch, Ferizovic und Sun zeigen, dass Adams Divide-and-Conquer-Algorithmus tatsächlich das theoretisch optimale wobei . Sie befassen sich jedoch nicht mit dem Hedge-Union-Algorithmus.
Ist Hedge Union tatsächlich so effizient wie Divide-and-Conquer? Der am wenigsten offensichtliche Teil ist die Innenverkleidung. Zumindest oberflächlich betrachtet scheint es, die Arbeit zwischen dem linken und dem rechten Teilbaum zu duplizieren, die die vollständige Aufteilung zwischen ihnen teilt. Vielleicht ist das aus irgendeinem Grund in Ordnung, aber ich weiß nicht warum.
Eine weitere Anfrage: Haskell's Data.Set
und Data.Map
Hedge-Varianten von Schnittmenge und Differenz sowie Union. Ich habe überhaupt keine veröffentlichte Diskussion über diese Algorithmen gefunden. Ähnliche Fragen gelten auch für diese.
quelle
Data.Set
aufgrund dieser Beobachtungen tatsächlich geändert ?