Permutation eines Arrays: Eine ausführliche Erklärung
Um Permutationen eines Arrays zu generieren, ist es wichtig zu verstehen, wie die Elemente angeordnet sind. Bei einer Permutation werden die Array-Elemente neu angeordnet, um neue Sequenzen zu erstellen. Die Anzahl der möglichen Permutationen für ein Array mit n Elementen wird durch n! angegeben.
Rekursiver Algorithmus
Eine Möglichkeit, Permutationen zu generieren, ist die Verwendung eines rekursiven Ansatzes, bei dem Sie Tauschen Sie Elemente iterativ aus und wenden Sie Permutationen auf die verbleibenden Array-Elemente an.
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())); } }
Dieser Algorithmus beginnt mit Austauschen des ersten Elements mit jedem der verbleibenden Elemente. Anschließend wird dieselbe Operation rekursiv auf die verbleibenden Elemente angewendet. Nach jedem rekursiven Aufruf werden die Elemente wieder an ihre ursprünglichen Positionen vertauscht.
Nicht-rekursiver Algorithmus
Berücksichtigen Sie für einen iterativen Ansatz die folgenden Schritte:
Beispiel: Permutieren eines Arrays [3, 4, 6, 2, 1]
Rekursiver Algorithmus:
Nicht-rekursiver Algorithmus:
Das Ergebnis für beide Algorithmen ist dasselbe: alle möglichen Permutationen werden generiert und gedruckt.
Das obige ist der detaillierte Inhalt vonWie kann ich alle Permutationen eines Arrays mithilfe rekursiver und nicht rekursiver Algorithmen generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!