Maison >Java >javaDidacticiel >Comment pouvons-nous générer toutes les permutations uniques d'un tableau d'entiers ?
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};
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; } }
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!