Adamsは、2つのセットの和集合を見つけるための分割統治アルゴリズムを説明します(重みが均衡化されたバイナリ検索ツリーとして表されます)。次に彼は、分割統治アルゴリズムを改良したと主張する当時の新しい「ヘッジ結合」アルゴリズムについて説明します。しかし、彼はそれがであるべき理由の証明や実際の説明さえ提供していません。
Blelloch、Ferizovic、およびSunは、Adamsの分割統治アルゴリズムが実際に理論的に最適な達成することを示してい。ここで、です。ただし、これらはヘッジユニオンアルゴリズムには対応していません。
ヘッジユニオンは実際、分割統治と同じくらい効率的ですか?最も目立たない部分はインナートリムです。少なくとも表面的には、完全に分割された左側と右側のサブツリー間で作業が重複しているように見えます。おそらくこれは何らかの理由で問題ないかもしれませんが、理由はわかりません。
さらなる調査:Haskell Data.Set
とData.Map
、交差と差分のヘッジバリアント、および共用体を使用します。これらのアルゴリズムに関する公開された議論はまったく見つかりませんでした。同様の質問がこれらにも当てはまります。
Data.Set
これらの観察に基づいて実際に実装を変更しましたか?