ホームページ > バックエンド開発 > C++ > 2 つの配列から共通要素を見つける C++ プログラム

2 つの配列から共通要素を見つける C++ プログラム

WBOY
リリース: 2023-09-09 23:13:09
転載
1292 人が閲覧しました

2 つの配列から共通要素を見つける C++ プログラム

配列とデータ構造を使用して、同種の (同一の) データを複数のメモリ位置に保存します。配列を使用する主な利点は、インデックス パラメーターを使用してどこからでも配列にアクセスできることです。データを順番に追加および削除する必要があるという事実により、このデータ構造は線形構造になります。配列から要素を取得するには、角括弧内のインデックスまたは位置番号を使用するだけです。この記事では、C を使用して 2 つの配列に存在する共通要素のみを取得します。

概念を理解し、例で説明する

リーリー

最初の配列には 9 つの要素があり、2 番目の配列には 8 つの要素があります。したがって、2 つの配列は同じサイズではない可能性があります。私たちの仕事は、これら 2 つの配列間の共通要素を見つけることです。ここでは、この問題を解決するためのヒントをいくつか見ていきます。

素朴な解決策

最初の最も一般的な解決策は、最初の配列の各要素をループし、2 番目の配列で最初の配列の各エントリを検索することです。このソリューションは効率は劣りますが、よりシンプルです。アルゴリズムと対応する実装を見てみましょう。

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

    2 つの配列 A と B を入力として受け取ります
  • すべての繰り返し要素を保持する別の配列 D を定義します
  • A の各要素 e1 に対して、次の操作を実行します
    • B の各要素 e2 に対して、次の操作を実行します
      • e1 = e2の場合、
        • e1 を D
        • に挿入します

      • 終了場合
    • ループの終了
  • ループの終了
  • Dを返す
  • Example
の中国語訳は次のとおりです:

Example

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

ベクトルと set_intersection() 関数を使用する

C STL を使用すると、

set_intersection()

関数は共通要素を反復子オブジェクトとして返します。ただし、この関数を使用するには、配列を昇順に並べ替える必要があります。アルゴリズムと C 実装コードを見てみましょう。

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

2 つの配列 A と B を入力として受け取ります

    繰り返しの要素をすべて保持するために別の配列 D を定義します
  • 繰り返し要素の配列のイテレータを作成する
  • set_intersection()

    メソッドを使用して、配列 A と配列 B で交差演算を実行し、結果を配列 D に保存します

  • Dを返す

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

    Example

    リーリー ###出力### リーリー ###結論は###
  • この記事では、要素のコレクションまたは 2 つの配列から共通要素を見つける 2 つの方法について説明しました。最初の素朴な解決策は、2 つの静的配列を使用し、各要素を 1 つずつスキャンして共通要素を見つけることです。この解の時間計算量は O(n.m) です。ここで、n は最初の配列のサイズ、m は 2 番目の配列のサイズです。次のメソッドは、C STL ベースの set_intersection() メソッドを使用します。この方法では、ソートされたベクトルを使用する必要があります。次に、メソッドはパブリック要素イテレータ オブジェクトを返します。そこからベクトルを作成して返すことができます。

以上が2 つの配列から共通要素を見つける C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート