Spiegazione della permutazione in Java [con esempi di codifica]

Pubblicato: 2020-11-24

JAVA è stato sviluppato da James Gosling presso Sun Microsystems nell'anno 1995. Utilizzando JAVA, gli sviluppatori possono creare applicazioni stabili, sicure e resilienti in grado di funzionare su quasi tutte le piattaforme, inclusi i sistemi operativi basati su Linux, Windows e macOS.

La proprietà Write Once, Run Always di JAVA (nota anche come WORA) evita anche la necessità di ricompilare il codice che è già stato compilato in modo soddisfacente una volta. Questa versatilità di JAVA lo rende un linguaggio ideale per integrare complesse funzionalità logiche e matematiche integrate in quasi tutti i tipi di applicazioni multipiattaforma.

I vantaggi dell'utilizzo di JAVA per sviluppare app Web, rispetto a qualsiasi altro ambiente di sviluppo Web alternativo (o popolare), si estendono a tre pilastri principali di vantaggi applicativi sostenuti, vale a dire:

  1. La sintassi JAVA è facile da imparare e adattare, ed è adatta a programmatori di ogni livello di ritmo e complessità. Ciò rende JAVA una scommessa sicura per i team di sviluppo soggetti a frequenti cambi di personale. Il tempo impiegato da una nuova risorsa per allinearsi alla piattaforma di sviluppo comune (JAVA) è uno dei minimi del settore.
  2. JAVA è un linguaggio di programmazione orientato agli oggetti di alto livello, che lo rende completamente modulare nell'approccio e offre agli sviluppatori la possibilità di creare blocchi di codice funzionalmente riutilizzabili, riducendo così lo sforzo. Una vasta libreria di funzioni integrate riduce anche le dipendenze da altri plugin terziari o componenti aggiuntivi del compilatore, script, ecc., il che a sua volta offre a JAVA uno dei tempi di implementazione minimi.
  3. JAVA unisce il meglio di tutti i mondi essendo indipendente dalla piattaforma come discusso sopra. Un'applicazione web sviluppata in JAVA può essere facilmente spostata da un sistema operativo all'altro senza alcuna perdita di funzionalità, ed è un'utilità inestimabile da possedere in qualsiasi ambiente di sviluppo.

Essendo uno degli aspetti che rende JAVA così redditizio come piattaforma di sviluppo per il web, le sue minime dipendenze dall'implementazione e la sintassi matematicamente valida possono essere generosamente sfruttate per eseguire quasi tutte le istruzioni matematiche o logiche semplicemente invocando una funzione integrata, con un minimo personalizzazione.

Uno degli esempi più brillanti di questa flessibilità nel codice è la capacità di eseguire la permutazione in JAVA — più specificamente, di randomizzare veramente e trovare tutte le possibili permutazioni di tutti i caratteri disponibili in una particolare stringa.

In questo tutorial guidato, impareremo come tentare di eseguire questa permutazione in JAVA memorizzando il primo carattere della stringa in una posizione "tracciata" della stringa e invocando la funzione generatePermutation() per randomizzare diverse variazioni con tutte le altre caratteri nella stringa.

Leggi: Domande e risposte per l'intervista Java

Sommario

Permutazione in Java: il concetto di algoritmo di backtracking

Per trovare una soluzione a questo problema di permutazione in JAVA , dobbiamo prima familiarizzare con un concetto che è diventato ampiamente accettato all'interno della comunità di sviluppo web, come l' algoritmo di L' algoritmo di backtracking è un processo ricorsivo che dipende dal fissare periodicamente un carattere di una data stringa e combinarlo con tutte le possibili permutazioni di tutti gli altri caratteri, e ripetere questo processo con i caratteri in ogni posizione della stringa individualmente, per arrivare al massimo (e tutte le possibili) numero di variazioni per quella stringa.

Questo algoritmo di permutazione in JAVA è più facile da capire nel contesto di una data stringa con tre caratteri. Diciamo che questi tre caratteri in una determinata stringa sono A, B e C.

Il primo passo per eseguire questa permutazione in JAVA è iniziare fissando un carattere (inizieremo sempre fissando il carattere disponibile nella prima posizione), quindi eseguire uno scambio con tutti i caratteri rimanenti, combinandoli con l'originale ( fisso) carattere.

Ad esempio, nell'esempio della stringa ABC, eseguiremo le prime tre iterazioni della stringa fissando il carattere A (che è il Arriviamo quindi alle seguenti combinazioni: ABC , BAC e CBA .

Il passaggio successivo consiste nel " correggere " in modo simile il carattere trovato nella posizione successiva della stringa (in questo caso, il carattere che si trova nella seconda posizione della stringa, ovvero B ) e scambiando i caratteri rimanenti (incluso il carattere che è stato Alla fine, continueremo a ripetere questo passaggio con ogni livello di randomizzazione raggiunto, fino ad arrivare a un insieme completo di tutte le possibili permutazioni:

ABC

ACB

BAC

BCA

CBA

TAXI

Nella sezione codice di esempio/output desiderato disponibile alla fine di questo articolo, trasformeremo questo tentativo di eseguire la permutazione in JAVA in codice leggibile e quindi vedremo le permutazioni calcolate in tempo reale.

Esecuzione di una permutazione in JAVA: l'algoritmo ricorsivo per tornare indietro e scambiare

Un breve riassunto del processo per prendere una stringa casuale ed eseguire una permutazione completa in JAVA, può essere descritto con il seguente algoritmo ricorsivo passo passo:

  1. Definizione di stringa : in primo luogo, definire una stringa. Puoi sempre scegliere di accettare una stringa casuale come variabile di input, ma per chiarezza di scopo e sforzo, in questo esempio useremo la stringa predefinita ABC.
  2. Correzione del personaggio – Risolvi un personaggio (inizia con il personaggio nella prima posizione e continua a scambiarlo con tutti i personaggi rimanenti).
  3. generatePermutation() – Richiama e usa l'output dalla funzione generatePermutation(), per tutti i caratteri rimanenti.
  4. Backtracking ricorsivo : esegui l'algoritmo di "backtracking" e continua a scambiare i caratteri in modo ricorsivo fino a quando il tuo codice non raggiunge la fine della stringa (nel nostro esempio attuale, fino a C).

Esecuzione di una permutazione in JAVA — Codice di esempio:

classe pubblica PermuteString {

//definizione di una funzione per scambiare i caratteri nella posizione i con tutti i caratteri nella posizione j

public static String swapString(String a, int i, int j) {

// Definizioni dei caratteri per caratteri fissi nella stringa

char[] b =a.toCharArray();

carbone;

// eseguendo lo scambio nel passaggio successivo

ch = b[i];

b[i] = b[j];

b[j] = cap;

restituisce String.valueOf(b);

}public static void main(String[] args)

{

//definizione della stringa predefinita ABC

Stringa str = “ABC”;

//contando la lunghezza della stringa

int len ​​= str.lunghezza();

//stampa tutte le randomizzazioni

System.out.println(“Di seguito sono riportate tutte le possibili permutazioni della stringa ABC: “);

generatePermutation(str, 0, len);

}

//definizione di una funzione per generare tutte le possibili permutazioni della stringa

public static void generatePermutation(String str, int start, int end)

{

// stampa tutte le permutazioni

se (inizio == fine-1)

System.out.println(str);

altro

{

for (int i = inizio; i < fine; i++)

{

//correzione di un carattere per scambiare la stringa

str = swapString(str,start,i);

//chiamando ricorsivamente la funzione generatePermutation() per tutti i caratteri rimanenti generatePermutation(str,start+1,end);

//eseguendo l'algoritmo di backtracking per scambiare di nuovo i caratteri

str = swapString(str,start,i);

}

}

}

}

Esecuzione di una permutazione in JAVA — Output derivato dal codice di esempio:

Quando compili ed esegui questo esempio potrebbe, l'output desiderato dovrebbe assomigliare in qualche modo a questo:

Di seguito sono riportate tutte le possibili permutazioni della stringa ABC:

ABC

ACB

BAC

BCA

CBA

TAXI

Da leggere: Progetti e argomenti Java interessanti

Conclusione

Ci auguriamo che tu abbia trovato utile questo tutorial per eseguire una permutazione in JAVA.

Se sei interessato a saperne di più su Java, OOP e sviluppo software full-stack, dai un'occhiata al Diploma PG di upGrad e IIIT-B in Sviluppo software full-stack, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, 9 + progetti e incarichi, stato di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Prepararsi per una carriera del futuro

APPRENDIMENTO AFFIDABILE DEL SETTORE - CERTIFICAZIONE RICONOSCIUTA DEL SETTORE.
Per saperne di più