ホームページ  >  記事  >  バックエンド開発  >  素セットのデータ構造または共用体検索アルゴリズムの概要

素セットのデータ構造または共用体検索アルゴリズムの概要

WBOY
WBOY転載
2023-09-11 15:13:021264ブラウズ

素セットのデータ構造または共用体検索アルゴリズムの概要

素セット情報構造 (和集合検索アルゴリズムとしても知られる) は、おそらくコンピューター サイエンスの基本概念であり、割り当てとネットワークに関連する問題を解決するための効果的な方法を提供します。これは、コンポーネントのセットに関係する問題を解決し、それらの接続を決定する場合に特に役立ちます。この記事では、言語構造、アルゴリズム、および素のセット情報構造を C で実装するための 2 つのユニークな方法について説明します。これらのメソッドを示す完全に実行可能なコード例も提供します。

###文法###

アルゴリズムを詳しく説明する前に、次のコード例で使用される構文について理解しましょう -

リーリー ###アルゴリズム###

素のデータ構造を利用すると、複数の素のコレクションを扱う場合に非常に役立ちます。個々のグループには、それを特徴付ける特定の代表者が割り当てられます。開始点には、各コンポーネントが独自の孤立したセットを形成することが含まれます。このセットは、それぞれの代表に対応します (それ自体もたまたまそうなります)。素のセットに対して実行される 2 つの主な操作は、結合と検索です。

共同作戦

マージする 2 つのセットの代表を見つけます。

  • 代表者が異なる場合は、一方の代表者がもう一方の代表者を指すようにして、セットを効果的にマージします。

  • 代表者が同じ場合、セットはマージされているため、それ以上のアクションは必要ありません。

  • 検索操作

与えられた要素が属するセットの代表を見つけます。

  • 親ポインタを代表ノードに到達するまでたどります。

  • 結果としてデリゲートを返します。

  • 方法 1: ランクベースのマージとパス圧縮

  • 素のセット データ構造を実装する効果的な方法は、ランクごとの結合およびパス圧縮技術を使用することです。

このメソッドでは、各コレクションにランクが関連付けられており、最初は 0 に設定されます。

2 つのセット間で結合演算を実行する場合、上位のセットが優先され、下位のセットがマージされます。 2 つのセットのランクが類似している場合、どのセットに誰が含まれるかを任意に選択する必要があります。いずれの場合も、新しいセットにマージされると、そのランクは 1 ずつ増加します。さらに、検索操作を高速化し、時間の複雑さを軽減するために、パス圧縮はこれらの操作中にツリー構造を平坦化するのに役立ちます。

Example

の中国語訳は次のとおりです:

Example

リーリー ###出力### リーリー

方法 2: サイズとパスの圧縮を使用したサイズベースのマージ

素のセット データ構造に対処するもう 1 つの方法は、サイズによるマージとパス圧縮技術を使用することです。

このメソッドでは、各コレクションに関連付けられたサイズがあり、最初は 1 に設定されます。

    結合演算では、より小さなセットがより大きなセットにマージされます。
  • 結果セットのサイズはそれに応じて更新されます。
  • 前の方法と同様に、シーク操作中にパス圧縮を適用してツリー構造を平坦化します。
  • Example
  • の中国語訳は次のとおりです:

    Example

    リーリー ###出力### リーリー ###結論は###
  • 素セット データ構造または共用体検索アルゴリズムは、セットと接続性に関する問題を解決するための強力なツールです。この記事では、C の素集合データ構造の構文とそのアルゴリズムを広範囲に研究します。理解を広げるために、パス圧縮と組み合わせたランキングベースの結合と、サイズとパス圧縮によるサイズベースの結合という 2 つの独自のアプローチを読者に提供します。これらの方法を理解して実装することで、素セットの追跡を必要とするさまざまな問題を効果的に解決できます。

以上が素セットのデータ構造または共用体検索アルゴリズムの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。