Maison > Java > javaDidacticiel > Comment pouvons-nous générer toutes les permutations uniques d'un tableau d'entiers ?

Comment pouvons-nous générer toutes les permutations uniques d'un tableau d'entiers ?

DDD
Libérer: 2024-12-11 16:03:17
original
873 Les gens l'ont consulté

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

Les permutations d'un tableau peuvent être réalisées en générant toutes les combinaisons possibles tout en garantissant que chaque combinaison est unique. Pour approfondir ce concept, considérons le tableau donné :

int[] a = {3, 4, 6, 2, 1};
Copier après la connexion

L'objectif est de lister toutes les permutations distinctes de ce tableau. Voici l'algorithme de pseudocode :

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;
  }
}
Copier après la connexion

Dans cet algorithme, nous parcourons chaque élément du tableau (représenté par l'index i) et le comparons avec tous les autres éléments (représentés par l'index j). Si les éléments n'ont pas été échangés auparavant (indiqué par la vérification hasBeenGenerated()), nous créons une nouvelle permutation en les échangeant et l'ajoutons à la liste. Nous échangeons ensuite les éléments pour conserver le tableau d'origine. En considérant toutes les combinaisons possibles d'éléments, nous générons une liste complète de permutations.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal