Adams descrive un algoritmo di divisione e conquista per trovare l'unione di due insiemi (rappresentati come alberi di ricerca binari bilanciati in base al peso). Descrive quindi un nuovo algoritmo "hedge union" che sostiene migliorare su quello di divisione e conquista. Tuttavia, non offre una prova, o addirittura una vera spiegazione, del perché dovrebbe essere, figuriamoci perché dovrebbe essere più veloce della divisione e conquista.
Blelloch, Ferizovic e Sun dimostrano che l'algoritmo Adams divide and conquer raggiunge effettivamente il teoricamente ottimale dove . Tuttavia, non affrontano l'algoritmo hedge union.
L'hedge union, infatti, è efficace quanto il divide-and-conquistare? La parte meno ovvia è il rivestimento interno. Sembra, almeno superficialmente, duplicare il lavoro tra i sottotitoli sinistro e destro che la divisione completa condivide tra loro. Forse questo va bene per qualche motivo, ma non so perché.
Un'ulteriore richiesta: Haskell's Data.Set
e Data.Map
usa varianti di siepe di intersezione e differenza, nonché unione. Non ho trovato alcuna discussione pubblicata su tali algoritmi. Domande simili si applicano anche a queste.
Data.Set
base a queste osservazioni?