Heim >Backend-Entwicklung >C++ >Wie können rekursive Algorithmen alle Permutationen von Strings und Ganzzahlen erzeugen?
Verständnis Prinzipien
Anfangsschritte: Für ein einzelnes Element ist die Anordnung das Element selbst.
Zwei Elemente:
<code>perm(a) -> a</code>
Drei Elemente:
<code>perm(ab) -> a + perm(b) -> ab b + perm(a) -> ba</code>
Der rekursive Algorithmus im Pseudo -Code
c# Implementierung<code>perm(abc) -> a + perm(bc) -> abc, acb b + perm(ac) -> bac, bca c + perm(ab) -> cab, cba</code>
<code>generatePermutations(permutation) { if (permutation 的长度 为 0) { 打印 permutation 返回 } 对于 permutation 中的每个元素 element: 创建一个新的排列 newPermutation,移除 element 将 element 添加到 generatePermutations(newPermutation) 的结果的前面 }</code>Die beiden Elemente im Array des Funktionsschalters, während die rekursive Funktion alle möglichen Anordnungen durchführt. Rückback -Schritte () Stellen Sie sicher, dass das Array nach der Verarbeitung einer Vereinbarung in den vorherigen Zustand zurückkehrt, um die nächste Vereinbarung zu erstellen.
Das obige ist der detaillierte Inhalt vonWie können rekursive Algorithmen alle Permutationen von Strings und Ganzzahlen erzeugen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!