Wyjaśnienie permutacji w Javie [z przykładami kodowania]
Opublikowany: 2020-11-24JAVA została opracowana przez Jamesa Goslinga w Sun Microsystems w 1995 roku. Korzystając z JAVA, programiści mogą tworzyć stabilne, bezpieczne i odporne aplikacje, które mogą działać na prawie każdej platformie — w tym na systemach operacyjnych opartych na systemach Linux, Windows i macOS.
Właściwość JAVA Write Once, Run Always (znana również jako WORA) również oszczędza potrzebę ponownej kompilacji kodu, który został już raz skompilowany w sposób zadowalający. Ta wszechstronność JAVA sprawia, że jest to idealny język do integracji wbudowanych złożonych funkcji logicznych i matematycznych w prawie wszystkich typach aplikacji wieloplatformowych.
Zalety korzystania z JAVA do tworzenia aplikacji internetowych, w przeciwieństwie do jakiegokolwiek innego alternatywnego (lub popularnego) środowiska programistycznego, obejmują trzy główne filary trwałych korzyści aplikacji, a mianowicie:
- Składnia JAVA jest łatwa do nauczenia, łatwa do dostosowania i odpowiednia dla programistów na każdym poziomie tempa i złożoności. To sprawia, że JAVA jest bezpiecznym zakładem dla zespołów programistycznych, które podlegają częstym zmianom personalnym. Czas potrzebny na dostosowanie się nowego zasobu do wspólnej platformy programistycznej (JAVA) jest jednym z najmniejszych w branży.
- JAVA jest językiem programowania zorientowanym obiektowo wysokiego poziomu, co czyni go całkowicie modułowym w podejściu i daje programistom możliwość tworzenia fragmentów kodu, których można używać wielokrotnie, redukując w ten sposób wysiłek. Ogromna biblioteka wbudowanych funkcji zmniejsza również zależność od innych wtyczek trzeciorzędnych lub dodatków kompilatora, skryptów itp. – co z kolei zapewnia JAVA jeden z najkrótszych czasów implementacji.
- JAVA łączy to, co najlepsze ze wszystkich światów, będąc niezależną od platformy, jak omówiono powyżej. Aplikacja internetowa napisana w JAVA może być łatwo przeniesiona z jednego systemu operacyjnego do drugiego bez utraty funkcjonalności, co jest bezcennym narzędziem w każdym środowisku programistycznym.
Jako jeden z aspektów, który sprawia, że JAVA jest tak lukratywna jako platforma programistyczna dla sieci, jej minimalne zależności implementacyjne i matematycznie poprawna składnia mogą być hojnie wykorzystane do wykonywania prawie wszystkich instrukcji matematycznych lub logicznych, po prostu wywołując wbudowaną funkcję z minimalnym dodatkowym dostosowywanie.
Jednym z najjaśniejszych przykładów tej elastyczności w kodzie jest możliwość wykonywania permutacji w języku JAVA — a dokładniej, prawdziwie losowej i znajdowania wszystkich możliwych permutacji wszystkich znaków dostępnych w określonym ciągu.
W tym samouczku z przewodnikiem dowiemy się, jak spróbować wykonać tę permutację w JAVA, przechowując pierwszy znak ciągu w „śledzonej” lokalizacji ciągu i wywołując funkcję generatePermutation() w celu losowania różnych odmian ze wszystkimi innymi znaków w ciągu.

Przeczytaj: Pytania i odpowiedzi dotyczące rozmowy kwalifikacyjnej w języku Java
Spis treści
Permutacje w Javie — koncepcja algorytmu cofania
Aby znaleźć rozwiązanie tego problemu permutacji w JAVA , musimy najpierw zapoznać się z pojęciem, które stało się szeroko akceptowane w społeczności twórców stron internetowych, jako algorytm Algorytm wycofywania jest procesem rekurencyjnym, który polega na okresowym ustalaniu jednego znaku z danego ciągu i łączeniu go ze wszystkimi możliwymi permutacjami wszystkich innych znaków oraz powtarzaniu tego procesu ze znakami w każdej pozycji ciągu indywidualnie, aby osiągnąć maksimum (i wszystkie możliwe) liczby wariacji dla tego ciągu.
Ten algorytm permutacji w JAVA jest łatwiejszy do zrozumienia w kontekście danego ciągu z trzema znakami. Załóżmy, że te trzy znaki w danym ciągu to A, B i C.
Pierwszym krokiem do wykonania tej permutacji w JAVA jest naprawienie jednego znaku (zawsze zaczniemy od ustalenia znaku dostępnego na pierwszej pozycji), a następnie wykonanie zamiany ze wszystkimi pozostałymi znakami, łącząc je z oryginałem ( stały) znak.
Na przykład w przykładzie ciągu ABC wykonamy nasze pierwsze trzy iteracje ciągu, poprawiając znak A (który jest Następnie dochodzimy do następujących kombinacji: ABC , BAC i CBA .
Następnym krokiem jest podobne „ naprawienie ” znaku znajdującego się na następnej pozycji ciągu (w tym przypadku znaku znajdującego się na drugiej pozycji ciągu, czyli B ) i zamiana pozostałych znaków (w tym znaku, który został W końcu będziemy powtarzać ten krok na każdym osiągniętym poziomie randomizacji, aż dojdziemy do pełnego zestawu wszystkich możliwych permutacji:

ABC
ACB
BAC
BCA
CBA
TAKSÓWKA
W sekcji przykładowy kod/pożądane dane wyjściowe, dostępnej na końcu tego artykułu, zamienimy tę próbę wykonania permutacji w JAVA w czytelny kod, a tym samym zobaczymy, jak permutacje są obliczane w czasie rzeczywistym.
Wykonywanie permutacji w JAVA — algorytm rekurencyjny do cofania i zamiany
Zwięzłe podsumowanie procesu pobrania losowego ciągu i wykonania dokładnej permutacji w JAVA można opisać następującym algorytmem rekurencyjnym krok po kroku:
- Definicja ciągu — najpierw zdefiniuj ciąg. Zawsze możesz zaakceptować losowy ciąg jako zmienną wejściową, ale dla jasności celu i wysiłku w tym przykładzie użyjemy predefiniowanego ciągu ABC.
- Naprawianie postaci - Napraw jedną postać (zacznij od postaci na pierwszej pozycji i kontynuuj zamianę na wszystkie pozostałe znaki).
- generatePermutation() — Wywołaj i użyj danych wyjściowych funkcji generatePermutation() dla wszystkich pozostałych znaków.
- Rekurencyjne wycofywanie — wykonaj algorytm „wycofywania” i rekurencyjnie zamieniaj znaki, aż kod osiągnie koniec ciągu (w naszym obecnym przykładzie do C).
Wykonywanie permutacji w JAVA — przykładowy kod:
public class PermuteString {
//definiowanie funkcji do zamiany znaków na pozycji i ze wszystkimi znakami na pozycji j
public static String swapString(String a, int i, int j) {
// definicje znaków dla stałych znaków w łańcuchu
char[] b =a.toCharArray();
znak ch;
// wykonanie zamiany w kolejnym kroku
ch = b[i];
b[i] = b[j];
b[j] = ch;
return String.valueOf(b);
}public static void main(String[] args)
{
//definiowanie domyślnego ciągu ABC
Ciąg str = „ABC”;
//liczenie długości ciągu
int dł = str.długość();
//drukowanie wszystkich randomizacji
System.out.println(„Poniżej znajdują się wszystkie możliwe permutacje ciągu ABC:”);
generatePermutation(str, 0, len);
}
//definiowanie funkcji do generowania wszystkich możliwych permutacji ciągu
public static void generatePermutation(String str, int start, int end)
{
// drukowanie wszystkich permutacji
jeśli (początek == koniec-1)
System.out.println(str);
w przeciwnym razie
{
for (int i = początek; i < koniec; i++)
{
//naprawianie znaku, aby zamienić ciąg
str = swapString(str,start,i);
//rekurencyjne wywołanie funkcji generatePermutation() dla wszystkich pozostałych znaków generatePermutation(str,start+1,end);
//wykonywanie algorytmu cofania, aby ponownie zamienić znaki
str = swapString(str,start,i);
}
}
}
}
Wykonywanie permutacji w JAVA — dane wyjściowe pochodzące z przykładowego kodu:
Kiedy skompilujesz i uruchomisz ten przykład, pożądany wynik powinien wyglądać mniej więcej tak:
Poniżej znajdują się wszystkie możliwe permutacje ciągu ABC:
ABC
ACB
BAC
BCA

CBA
TAKSÓWKA
Musisz przeczytać: Ciekawe projekty i tematy Java
Wniosek
Mamy nadzieję, że ten samouczek okazał się przydatny do przeprowadzania permutacji w JAVA.
Jeśli chcesz dowiedzieć się więcej o Javie, programach OOP i tworzeniu pełnego stosu oprogramowania, zapoznaj się z dyplomem PG upGrad i IIIT-B w zakresie pełnego tworzenia oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia, 9 + projekty i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.