Permutation in Java erklärt [mit Codierungsbeispielen]
Veröffentlicht: 2020-11-24JAVA wurde 1995 von James Gosling bei Sun Microsystems entwickelt. Mit JAVA können Entwickler stabile, sichere und widerstandsfähige Anwendungen erstellen, die auf fast jeder Plattform ausgeführt werden können – einschließlich Linux-, Windows- und macOS-basierter Betriebssysteme.
Die Write Once, Run Always -Eigenschaft von JAVA (auch als WORA bekannt) erspart auch die Notwendigkeit, Code neu zu kompilieren, der bereits einmal zufriedenstellend kompiliert wurde. Diese Vielseitigkeit von JAVA macht es zu einer idealen Sprache, um eingebaute komplexe logische und mathematische Funktionen in fast alle Arten von plattformübergreifenden Anwendungen zu integrieren.
Die Vorteile der Verwendung von JAVA zur Entwicklung von Web-Apps im Gegensatz zu anderen alternativen (oder beliebten) Web-Entwicklungsumgebungen erstrecken sich auf drei Hauptpfeiler nachhaltiger Anwendungsvorteile, nämlich:
- Die JAVA-Syntax ist leicht zu erlernen und leicht anzupassen und für Programmierer jeder Geschwindigkeits- und Komplexitätsstufe geeignet. Dies macht JAVA zu einer sicheren Wahl für Entwicklungsteams, die häufigen personellen Veränderungen unterliegen. Die Zeit, die eine neue Ressource benötigt, um sich an der gemeinsamen Entwicklungsplattform (JAVA) auszurichten, ist eine der geringsten in der Branche.
- JAVA ist eine objektorientierte Programmiersprache auf hoher Ebene, die einen vollständig modularen Ansatz hat und Entwicklern die Möglichkeit gibt, funktional wiederverwendbare Codeblöcke zu erstellen, wodurch der Aufwand reduziert wird. Eine riesige Bibliothek integrierter Funktionen reduziert auch Abhängigkeiten von anderen tertiären Plugins oder Compiler-Add-Ons, Skripten usw. – was JAVA wiederum eine der kürzesten Implementierungszeiten beschert.
- JAVA verbindet das Beste aus allen Welten, indem es wie oben beschrieben plattformunabhängig ist. Eine in JAVA entwickelte Webanwendung kann problemlos von einem Betriebssystem auf ein anderes verschoben werden, ohne dass die Funktionalität verloren geht, und das ist ein unschätzbarer Nutzen für jede Entwicklungsumgebung.
Als einer der Aspekte, die JAVA als Entwicklungsplattform für das Web so lukrativ machen, können seine minimalen Implementierungsabhängigkeiten und seine mathematisch solide Syntax großzügig ausgenutzt werden, um fast jede mathematische oder logische Anweisung auszuführen, indem einfach eine eingebaute Funktion mit minimalem Zusatz aufgerufen wird Anpassung.
Eines der besten Beispiele für diese Flexibilität im Code ist die Fähigkeit, Permutationen in JAVA durchzuführen – genauer gesagt, alle möglichen Permutationen aller in einer bestimmten Zeichenfolge verfügbaren Zeichen zu randomisieren und zu finden.
In diesem geführten Tutorial lernen wir, wie man versucht, diese Permutation in JAVA durchzuführen, indem man das erste Zeichen der Zeichenfolge an einer „nachverfolgten“ Stelle der Zeichenfolge speichert und die Funktion generatePermutation() aufruft, um verschiedene Variationen mit allen anderen zu randomisieren Zeichen in der Zeichenfolge.

Lesen Sie: Fragen und Antworten zu Java-Interviews
Inhaltsverzeichnis
Permutation in Java – das Konzept des Backtracking-Algorithmus
Um eine Lösung für dieses Permutationsproblem in JAVA zu finden , müssen wir uns zunächst mit einem Konzept vertraut machen, das in der Webentwicklungsgemeinschaft weithin akzeptiert ist, nämlich dem Der Backtracking -Algorithmus ist ein rekursiver Prozess, der davon abhängt, regelmäßig ein Zeichen einer bestimmten Zeichenfolge zu fixieren und es mit allen möglichen Permutationen aller anderen Zeichen zu kombinieren und diesen Vorgang mit Zeichen an jeder Position der Zeichenfolge einzeln zu wiederholen, um das Maximum zu erreichen (und alle möglichen) Variationen für diese Saite.
Dieser Permutationsalgorithmus in JAVA ist im Kontext einer gegebenen Zeichenfolge mit drei Zeichen leichter zu verstehen. Nehmen wir an, diese drei Zeichen in einer bestimmten Zeichenfolge sind A, B und C.
Der erste Schritt, um diese Permutation in JAVA durchzuführen, besteht darin, mit dem Fixieren eines Zeichens zu beginnen (wir beginnen immer damit, das verfügbare Zeichen an der ersten Position zu fixieren) und dann einen Austausch mit allen verbleibenden Zeichen durchzuführen, indem wir sie mit dem Original kombinieren ( festen) Charakter.
Im ABC-String-Beispiel führen wir beispielsweise unsere ersten drei String-Iterationen durch, indem wir das Zeichen A (das das Wir kommen dann zu den folgenden Kombinationen: ABC , BAC und CBA .
Der nächste Schritt besteht darin, das an der nächsten Position der Zeichenfolge gefundene Zeichen (in diesem Fall das an der zweiten Position der Zeichenfolge, nämlich B ) gefundene Zeichen auf ähnliche Weise zu „ Schließlich werden wir diesen Schritt mit jeder erreichten Randomisierungsstufe wiederholen, bis wir zu einem vollständigen Satz aller möglichen Permutationen kommen:

ABC
ACB
BAK
BCA
CBA
TAXI
Im Abschnitt Beispielcode/gewünschte Ausgabe am Ende dieses Artikels werden wir diesen Versuch, Permutationen in JAVA durchzuführen, in lesbaren Code umwandeln und dabei sehen, wie die Permutationen in Echtzeit berechnet werden.
Durchführen einer Permutation in JAVA – der rekursive Algorithmus zum Zurückverfolgen und Tauschen
Eine kurze Zusammenfassung des Prozesses, um eine zufällige Zeichenfolge zu nehmen und eine gründliche Permutation in JAVA durchzuführen, kann mit dem folgenden rekursiven Algorithmus Schritt für Schritt beschrieben werden:
- Zeichenfolgendefinition – Definieren Sie zunächst eine Zeichenfolge. Sie können jederzeit eine zufällige Zeichenfolge als Eingabevariable akzeptieren, aber um den Zweck und den Aufwand zu verdeutlichen, verwenden wir in diesem Beispiel die vordefinierte Zeichenfolge ABC.
- Charakterfixierung – Korrigieren Sie einen Charakter (beginnen Sie mit dem Charakter an der ersten Position und tauschen Sie ihn weiter gegen alle verbleibenden Charaktere aus).
- generatePermutation() – Rufen Sie die Ausgabe der Funktion generatePermutation() auf und verwenden Sie sie für alle verbleibenden Zeichen.
- Rekursives Backtracking – Führen Sie den „Backtracking“-Algorithmus aus und tauschen Sie die Zeichen rekursiv aus, bis Ihr Code das Ende der Zeichenfolge erreicht (in unserem aktuellen Beispiel bis C).
Durchführen einer Permutation in JAVA – Beispielcode:
öffentliche Klasse PermuteString {
//Definieren einer Funktion zum Austauschen der Zeichen an Position i mit allen Zeichen an Position j
public static String swapString(String a, int i, int j) {
// Zeichendefinitionen für feste Zeichen in String
char[] b =a.toCharArray();
char ch;
// Durchführen des Austauschs im nächsten Schritt
ch = b[i];
b[i] = b[j];
b[j] = ch;
Rückgabe String.valueOf(b);
}public static void main(String[] args)
{
// Definieren der Standardzeichenfolge ABC
Zeichenfolge str = „ABC“;
// Zählen der Stringlänge
int len = str.länge ();
//Drucken aller Randomisierungen
System.out.println(“Die folgenden sind alle möglichen Permutationen der Zeichenkette ABC: “);
generatePermutation(str, 0, len);
}
//Definieren einer Funktion zum Generieren aller möglichen Permutationen des Strings
public static void generatePermutation(String str, int start, int end)
{
// Drucken aller Permutationen
if (start == end-1)
System.out.println(str);
anders
{
for (int i = Anfang; i < Ende; i++)
{
// Festlegen eines Zeichens zum Austauschen der Zeichenfolge
str = swapString(str,start,i);
//rekursives Aufrufen der generatePermutation()-Funktion für alle verbleibenden Zeichen generatePermutation(str,start+1,end);
// Backtracking-Algorithmus ausführen, um die Zeichen noch einmal auszutauschen
str = swapString(str,start,i);
}
}
}
}
Durchführen einer Permutation in JAVA – Aus dem Beispielcode abgeleitete Ausgabe:
Wenn Sie dieses Beispiel kompilieren und ausführen könnten, sollte die gewünschte Ausgabe in etwa so aussehen:
Im Folgenden sind alle möglichen Permutationen der Zeichenfolge ABC aufgeführt:
ABC
ACB
BAK
BCA

CBA
TAXI
Muss gelesen werden: Interessante Java-Projekte und -Themen
Fazit
Wir hoffen, Sie fanden dieses Tutorial zur Durchführung einer Permutation in JAVA hilfreich.
Wenn Sie mehr über Java, OOPs und Full-Stack-Softwareentwicklung erfahren möchten, sehen Sie sich das PG-Diplom in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenges Training bietet, 9 + Projekte und Aufgaben, IIIT-B-Alumni-Status, praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.