問題タブ [union-find]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
133 参照

java - union-find + treemap を使用する Java プログラムが遅すぎる

私はこの課題を解決しています: https://open.kattis.com/problems/virtualfriends

私のソリューションは機能しているようですが、kattis のテスト ケースの実行が遅すぎるため、コードの効率を改善するにはどうすればよいか考えていました。これを行うためにカスタムメイドの共用体検索構造を使用し、「友達」をツリーマップに格納して参照しています。

0 投票する
1 に答える
115 参照

c - さまざまな場合のユニオン検索操作

これは、 Narasimha Karumanchi (disjoint set ADT)によるデータ構造の本からの段落です。

高速検索実装(クイック検索)

このメソッドは配列を使用します。配列には各要素のセット名が含まれています。

この表現では、union(a,b) [a, がセット i にあり、b がセット j にあると仮定して] を実行するには、配列全体をスキャンして、すべての i を j に変更する必要があります。これはO(n)を取ります。

私の質問 1

検索操作に O(1) がかかる場合、完全な配列をスキャンしてすべての i を j に変更する理由

============

(ブック 8.8 セクション)

セット名としてルートを使用する代わりに、各要素の親を格納する配列を使用して、和集合 O(n) を解きます

私の2.質問

親を使用してどのように問題を解決しますか? そして、ルートと親のアプローチの両方が、どのようにしてスキュー ツリーを提供するのでしょうか?

0 投票する
1 に答える
229 参照

algorithm - ユニオン検索操作のIDを見つける方法

Union Findを勉強しています。

ユニオン検索

これらのユニオン操作を組み合わせてこのグラフを作成する方法は理解していますが、ID 変数がどのように割り当てられているかはわかりません。最初は、各グラフのサイズだと思っていましたが、最初のグラフのサイズが 5 で、2 番目のグラフのサイズが 3 であるため、そうではありません。