Permutarea în Java explicată [cu exemple de codare]
Publicat: 2020-11-24JAVA a fost dezvoltat de James Gosling la Sun Microsystems în anul 1995. Folosind JAVA, dezvoltatorii pot crea aplicații stabile, sigure și rezistente care sunt capabile să ruleze pe aproape orice platformă - inclusiv sisteme de operare Linux, Windows și macOS.
Proprietatea Write Once, Run Always a JAVA (cunoscută și sub numele de WORA) scutește, de asemenea, nevoia de a recompila codul care a fost compilat satisfăcător o dată deja. Această versatilitate a JAVA îl face un limbaj ideal pentru a integra funcționalități logice și matematice complexe încorporate în aproape toate tipurile de aplicații multiplatforme.
Avantajele utilizării JAVA pentru a dezvolta aplicații web, spre deosebire de orice alt mediu de dezvoltare web alternativ (sau popular), se extind la trei piloni principali ai beneficiilor susținute ale aplicațiilor, și anume:
- Sintaxa JAVA este ușor de învățat și ușor de adaptat și potrivită pentru programatori la orice nivel de ritm și complexitate. Acest lucru face ca JAVA să fie un pariu sigur pentru echipele de dezvoltare care sunt supuse schimbărilor frecvente de personal. Timpul necesar pentru ca o nouă resursă să se alinieze la platforma comună de dezvoltare (JAVA) este unul dintre cele mai puține din industrie.
- JAVA este un limbaj de programare la nivel înalt, orientat pe obiecte, care îl face complet modular în abordare și oferă dezvoltatorilor posibilitatea de a crea bucăți de cod reutilizabile funcțional, reducând astfel efortul. O bibliotecă vastă de funcții încorporate reduce, de asemenea, dependențele de alte plugin-uri terțiare sau suplimente de compilator, scripturi etc. - ceea ce, la rândul său, oferă JAVA unul dintre cei mai puțini timpi de implementare.
- JAVA îmbină tot ce este mai bun din toate lumi, fiind independent de platformă, așa cum sa discutat mai sus. O aplicație web care este dezvoltată în JAVA poate fi mutată cu ușurință de la un sistem de operare la altul cu zero pierderi de funcționalitate și este o utilitate neprețuită de posedat în orice mediu de dezvoltare.
Fiind unul dintre aspectele care face ca JAVA să fie atât de profitabil ca platformă de dezvoltare pentru web, dependențele sale minime de implementare și sintaxa corectă din punct de vedere matematic pot fi exploatate cu generozitate pentru a efectua aproape orice instrucțiune matematică sau logică prin simpla invocare a unei funcții încorporate, cu un minim suplimentar suplimentar. personalizare.
Unul dintre cele mai strălucitoare exemple ale acestei flexibilități în cod este capacitatea de a efectua permutări în JAVA - mai precis, de a randomiza cu adevărat și de a găsi toate permutările posibile ale tuturor caracterelor disponibile într-un anumit șir.
În acest tutorial ghidat, vom învăța cum să încercăm să efectuăm această permutare în JAVA prin stocarea primului caracter al șirului într-o locație „urmărită” a șirului și invocând funcția generatePermutation() pentru a randomiza diferite variații cu toate celelalte caractere din șir.

Citiți: Întrebări și răspunsuri la interviu Java
Cuprins
Permutarea în Java - Conceptul algoritmului de backtracking
Pentru a găsi o soluție la această problemă a permutării în JAVA , trebuie mai întâi să ne familiarizăm cu un concept care a devenit larg acceptat în comunitatea de dezvoltare web, ca algoritm de Algoritmul de backtracking este un proces recursiv care depinde de fixarea periodică a unui caracter dintr-un șir dat și combinarea acestuia cu toate permutările posibile ale tuturor celorlalte caractere și repetarea acestui proces cu caractere în fiecare poziție a șirului individual, pentru a ajunge la maximum. (și toate posibilele) număr de variații pentru acel șir.
Acest algoritm de permutare în JAVA este mai ușor de înțeles în contextul unui șir dat cu trei caractere. Să presupunem că aceste trei caractere dintr-un șir dat sunt A, B și C.
Primul pas pentru a efectua această permutare în JAVA este să începem prin a remedia un caracter (vom începe întotdeauna prin a remedia caracterul disponibil în prima poziție), apoi să facem o schimbare cu toate caracterele rămase, combinându-le cu originalul ( caracter fix).
De exemplu, în exemplul de șir ABC, vom efectua primele trei iterații de șir fixând caracterul A (care este Ajungem apoi la următoarele combinații: ABC , BAC și CBA .
Următorul pas este să „ reparam ” în mod similar caracterul găsit în următoarea poziție a șirului (în acest caz, caracterul găsit în a doua poziție a șirului, și anume B ) și schimbarea caracterelor rămase (inclusiv caracterul care a fost În cele din urmă, vom continua să repetăm acest pas cu fiecare nivel de randomizare atins, până vom ajunge la un set complet de toate permutările posibile:

ABC
ACB
BAC
BCA
CBA
TAXI
În secțiunea de exemplu de cod/ieșire dorită disponibilă la sfârșitul acestui articol, vom transforma această încercare de a efectua permutarea în JAVA, în cod lizibil și, prin urmare, vom vedea permutările fiind calculate în timp real.
Efectuarea unei permutări în JAVA - algoritmul recursiv pentru a da înapoi și a schimba
Un rezumat succint al procesului de a lua un șir aleator și de a efectua o permutare amănunțită în JAVA, poate fi descris cu următorul algoritm recursiv pas cu pas:
- Definiție șir – Mai întâi, definiți un șir. Puteți alege oricând să acceptați un șir aleator ca variabilă de intrare, dar pentru claritatea scopului și efortului, vom folosi șirul predefinit ABC în acest exemplu.
- Fixarea caracterelor – Remediați un caracter (începeți cu personajul în prima poziție și continuați să-l schimbați cu toate caracterele rămase).
- generatePermutation() – Invocați și utilizați rezultatul din funcția generatePermutation() pentru toate caracterele rămase.
- Backtracking recursiv - Efectuați algoritmul de „backtracking” și continuați să schimbați recursiv caracterele până când codul ajunge la sfârșitul șirului (în exemplul nostru actual, până la C).
Efectuarea unei permutări în JAVA — Exemplu de cod:
clasă publică PermuteString {
//definirea unei funcții pentru a schimba caracterele din poziția i cu toate caracterele din poziția j
public static String swapString(String a, int i, int j) {
// definiții de caractere pentru caractere fixe din șir
char[] b =a.toCharArray();
char ch;
// efectuarea schimbului în pasul următor
ch = b[i];
b[i] = b[j];
b[j] = ch;
returnează String.valueOf(b);
}public static void main(String[] args)
{
//definirea șirului implicit ABC
String str = „ABC”;
//numărând lungimea șirului
int len = str.length();
//imprimarea tuturor randomizărilor
System.out.println(„Urmtoarele sunt toate permutările posibile ale șirului ABC: „);
generatePermutation(str, 0, len);
}
//definirea unei funcții pentru a genera toate permutările posibile ale șirului
public static void generatePermutation(String str, int start, int end)
{
// imprimarea tuturor permutărilor
dacă (început == sfârșit-1)
System.out.println(str);
altfel
{
pentru (int i = început; i < sfârșit; i++)
{
//repararea unui caracter pentru a schimba șirul
str = swapString(str,start,i);
//apelarea recursiv a funcției generatePermutation() pentru toate caracterele rămase generatePermutation(str,start+1,end);
//Efectuarea unui algoritm de backtracking pentru a schimba din nou caracterele
str = swapString(str,start,i);
}
}
}
}
Efectuarea unei permutări în JAVA — Ieșire derivată din codul eșantion:
Când compilați și rulați acest exemplu, rezultatul dorit ar trebui să arate oarecum astfel:
Următoarele sunt toate permutările posibile ale șirului ABC:
ABC
ACB
BAC
BCA

CBA
TAXI
Trebuie citit: Proiecte și subiecte Java interesante
Concluzie
Sperăm că ați găsit util acest tutorial pentru a efectua o permutare în JAVA.
Dacă sunteți interesat să aflați mai multe despre Java, POO și dezvoltarea de software full-stack, consultați Diploma PG de upGrad și IIIT-B în Dezvoltare de software Full-stack, care este concepută pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, 9 + proiecte și sarcini, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.