私はunion-find
アルゴリズムを扱っています。私のプログラムの最初の部分では、アルゴリズムは big set の分割を計算しE
ます。
その後S
、特定の node を含むset のすべてのメンバーを取得したいと考えていますx
。
E
今までは単純に、 setのすべての要素のメンバーシップをテストしていましたS
。しかし、昨日、「アルゴリズムの紹介」(CLRS、第 3 版、例 21.3-4) を読んでいて、演習で次のことがわかりました。
PRINT-SET(x)
ノードが与えられ、のセットのx
すべてのメンバーを任意の順序で出力する操作 を追加したいとします。x
互いに素な集合の森の各ノードに単一の属性を追加する方法を示して、の集合PRINT-SET(x)
のメンバーの数に比例して時間がかかりx
、他の操作の漸近的な実行時間は変更されないようにします。
「セットのメンバー数の線形x
」は、私の問題を大きく改善するでしょう! だから、私はこの演習を解決しようとしています...そしていくつかの失敗した試みの後、スタックオーバーフローで助けを求めています!