Nella programmazione Java, ci possono essere casi in cui lo sviluppatore deve ordinare le voci di massa. Ad esempio, organizzare o analizzare i valori generati in modo casuale. In tali casi, il "Unisci il tipo"In Java è efficace e più veloce, consumando così meno tempo per ordinare le voci o gli elenchi più lunghi rispetto ad altri algoritmi i.e., "Bolle Ord".
Questo blog approfondirà l'implementazione dell'algoritmo di "ordinamento" in Java.
Come implementare un "tipo di unione" in Java?
IL "Unisci il tipo"Si basa su"dividere e conquistare"Algoritmo tale che l'array sia diviso in uguali metà e quindi ulteriormente suddiviso fino a quando la divisione non può più essere eseguita. Dopo che l'array è stato suddiviso, viene nuovamente fuso in base agli elementi in modo ordinato (ascendente).
Dimostrazione dell'algoritmo di "ordinamento"
Panoramiamo il codice sotto fornito per comprendere il concetto discusso:
Classe pubblica Mergesort
public static void MaldEdArray (int [] SyllArray, int [] RightArray, int [] FinalArray, int SyllAraySize, int reightArraysize)
int item = 0, a sinistra = 0, a destra = 0;
mentre (a sinistraif (LeftArray [Left] FinalArray [Item ++] = LeftArray [Left ++];
altro
FinalArray [Item ++] = RightArray [Right ++];
mentre (a sinistraFinalArray [Item ++] = LeftArray [Left ++];
mentre (giustoFinalArray [Item ++] = RightArray [Right ++];
Nel codice sopra assegnato per la fusione, applicare i seguenti passaggi:
Implementazione
Ora, passiamo al seguente frammento di codice:
public static void dividearray (int [] array, int lunghezza)
Se (lunghezza < 2)return;
int div = lunghezza / 2;
int [] larray = new int [div];
int [] rarray = new int [lunghezza-div];
int temp = 0;
per (int i = 0; iif (ilaray [i] = array [i];
altro
raray [temp] = array [i];
temp = temp+1;
Dividearray (Larray, Div);
dividarray (raray, lunghezza-div);
MEDEDARDAY (LARRAY, RARRAY, Array, Div, Long-Div);
In questo codice implementato per la divisione dell'array passato, eseguire i passaggi sotto forniti:
Implementazione
Ora, panoramica il "principale" codice:
public static void main (string args [])
int [] Mergesorray = 30, 12, 46, 6, 17, 23;
Dividearray (Mergesorray, Mergesorray.lunghezza);
per (int i = 0; i< mergesortArray.length;++i)
Sistema.fuori.print (Mergesorray [i]+ "");
Nel "principale", Applica i seguenti passaggi:
Implementazione
Intero codice
Classe pubblica Mergesort
public static void MaldEdArray (int [] SyllArray, int [] RightArray, int [] FinalArray, int SyllAraySize, int reightArraysize)
int item = 0, a sinistra = 0, a destra = 0;
mentre (a sinistraif (LeftArray [Left] FinalArray [Item ++] = LeftArray [Left ++];
altro
FinalArray [Item ++] = RightArray [Right ++];
mentre (a sinistraFinalArray [Item ++] = LeftArray [Left ++];
mentre (giustoFinalArray [Item ++] = RightArray [Right ++];
public static void dividearray (int [] array, int lunghezza)
Se (lunghezza < 2)return;
int div = lunghezza / 2;
int [] larray = new int [div];
int [] rarray = new int [lunghezza-div];
int temp = 0;
per (int i = 0; iif (ilaray [i] = array [i];
altro
raray [temp] = array [i];
temp = temp+1;
Dividearray (Larray, Div);
dividarray (raray, lunghezza-div);
MEDEDARDAY (LARRAY, RARRAY, Array, Div, Long-Div);
public static void main (string args [])
int [] Mergesorray = 30, 12, 46, 6, 17, 23;
Dividearray (Mergesorray, Mergesorray.lunghezza);
per (int i = 0; i< mergesortArray.length;++i)
Sistema.fuori.print (Mergesorray [i]+ "");
Produzione
In questo output, si può implicare che l'array passato sia ordinato in modo appropriato.
Conclusione
L'ordinamento di unione si basa su "dividere e conquistare"Algoritmo in modo tale che l'array sia suddiviso in uguali metà e si unisce di nuovo in base agli elementi ordinati. Il risultato dell'algoritmo viene recuperato secondo quello originale in modo ordinato. Questo blog ha discusso dell'implementazione dell'algoritmo di tipo di unione in Java.