Heim >Backend-Entwicklung >C++ >Wie können rekursive Funktionen verwendet werden, um alle Permutationen einer Zeichenfolge oder Ganzzahl zu generieren?
Eine gemeinsame Programmierherausforderung besteht darin, alle möglichen Arranges der angegebenen Zeichenfolge oder Ganzzahl aufzulisten. Dieses Problem muss gelöst werden.
Anordnungslogik
Der logische Kern hinter der Anordnung ist sehr einfach:
Die Anordnung des Einheitselements ist das Element selbst.
Die folgende Rekursionsfunktion erzeugt angeordnet: (Hier sollten wir denselben Codeblock wie den Originaltext einfügen, aber in einer natürlicheren Sprache beschreiben)
Die rekursive Funktion erzeugt alle möglichen Anordnungen, indem die Anordnung jedes Elements und der verbleibenden Elemente iteriert. Wenn es nur ein Element gibt, endet die Rekursion und das Element selbst ist angeordnet.
c# Implementierung
Die folgende C#-Funktion wird effizient erzeugt, um die gesamte Anordnung der angegebenen Zeichenfolge effizient zu erzeugen, und erstellt jede Anordnung aus einer kleineren Anordnung durch rekursiv
Diese Funktion generiert alle Anordnungen, indem Sie sich rekursiv aufrufen und Funktionsaustauschzeichen verwendet, um verschiedene Arrangementkombinationen zu generieren.
liefert ein klareres Ausgangsergebnis.Diese Funktion erzeugt effektiv alle möglichen Anordnungen der angegebenen Zeichenfolge und erstellt jede Anordnung durch rekursive Anordnungen.
<code class="language-csharp">class Program { public static void GetPer(char[] list) { int x = list.Length - 1; GetPer(list, 0, x); } private static void GetPer(char[] list, int k, int m) { if (k == m) { Console.WriteLine(new string(list)); // 使用更清晰的输出方式 } else for (int i = k; i <= m; i++) { Swap(ref list[k], ref list[i]); GetPer(list, k + 1, m); Swap(ref list[k], ref list[i]); } } static void Swap(ref char a, ref char b) { char temp = a; a = b; b = temp; } static void Main() { string str = "sagiv"; char[] arr = str.ToCharArray(); GetPer(arr); } }</code>
Das obige ist der detaillierte Inhalt vonWie können rekursive Funktionen verwendet werden, um alle Permutationen einer Zeichenfolge oder Ganzzahl zu generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!