ホームページ > Java > &#&チュートリアル > 整数配列の一意の順列をすべて生成するにはどうすればよいでしょうか?

整数配列の一意の順列をすべて生成するにはどうすればよいでしょうか?

DDD
リリース: 2024-12-11 16:03:17
オリジナル
883 人が閲覧しました

How Can We Generate All Unique Permutations of an Integer Array?

配列の順列は、各組み合わせが一意であることを保証しながら、可能なすべての組み合わせを生成することで実現できます。この概念をさらに詳しく調べるために、指定された配列を考えてみましょう。

int[] a = {3, 4, 6, 2, 1};
ログイン後にコピー

目標は、この配列のすべての個別の順列をリストすることです。疑似コード アルゴリズムは次のとおりです。

for (int i = 0; i < a.length; i++) {
  // Perform actions for each element of the array
  for (int j = i + 1; j < a.length; j++) {
    // Swap elements at indices i and j to generate a permutation
    int temp = a[i];
    a[i] = a[j];
    a[j] = temp;

    // Check if the current permutation has already been generated
    if (!hasBeenGenerated(a)) {
      // If the permutation is new, add it to the list of permutations
      addPermutationToList(a);
    }

    // Swap the elements back to restore the original array
    temp = a[i];
    a[i] = a[j];
    a[j] = temp;
  }
}
ログイン後にコピー

このアルゴリズムでは、配列の各要素 (インデックス i で表される) を反復処理し、それを他のすべての要素 (インデックス j で表される) と比較します。要素が以前に交換されていない場合 (hasBeenGenerated() チェックによって示される)、要素を交換することによって新しい順列を作成し、それをリストに追加します。次に、元の配列を維持するために要素を元に戻します。考えられる要素の組み合わせをすべて考慮することで、包括的な順列リストを生成します。

以上が整数配列の一意の順列をすべて生成するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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