Maison >Java >javaDidacticiel >Comment puis-je générer toutes les permutations d'un tableau à l'aide d'algorithmes récursifs et non récursifs ?
Permutation d'un tableau : une explication approfondie
Pour générer des permutations d'un tableau, il est crucial de comprendre comment les éléments sont disposés. Une permutation implique de réorganiser les éléments du tableau pour créer de nouvelles séquences. Le nombre de permutations possibles pour un tableau avec n éléments est donné par n !.
Algorithme récursif
Une façon de générer des permutations consiste à utiliser une approche récursive, où vous échangez itérativement les éléments et appliquez des permutations sur les éléments restants du tableau.
public static void permute(java.util.List<Integer> arr, int k) { for (int i = k; i < arr.size(); i++) { java.util.Collections.swap(arr, i, k); permute(arr, k + 1); java.util.Collections.swap(arr, k, i); } if (k == arr.size() - 1) { System.out.println(java.util.Arrays.toString(arr.toArray())); } }
Cet algorithme commence par échanger le premier élément avec chacun des éléments restants. Ensuite, il applique récursivement la même opération sur les éléments restants. Après chaque appel récursif, les éléments sont replacés dans leurs positions d'origine.
Algorithme non récursif
Pour une approche itérative, considérez les étapes suivantes :
Exemple : Permutation d'un tableau [3, 4, 6, 2, 1]
Algorithme récursif :
Algorithme non récursif :
Le résultat pour les deux algorithmes c'est pareil : toutes les permutations possibles sont générées et imprimées.
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!