I Java -programmering kan det være tilfeller der utvikleren trenger å sortere bulkoppføringene. For eksempel å ordne eller analysere de tilfeldig genererte verdiene. I slike tilfeller "Slå sammen”I Java er effektiv og raskere, og bruker dermed mindre tid til å sortere de lengre oppføringene eller listene sammenlignet med andre algoritmer i.e., “Boble sort”.
Denne bloggen vil utdype implementeringen av "Merge Sort" -algoritmen i Java.
Hvordan implementere en "Merge -sort" i Java?
“Slå sammen”Er basert på“splitt og hersk”Algoritme slik at matrisen er delt inn i like halvdeler og deretter videre underinndelt til divisjonen ikke lenger kan gjøres. Etter at matrisen er inndelt, blir den slått sammen basert på elementene på en sortert (stigende) måte.
Demonstrasjon av "Merge Sort" -algoritmen
La oss oversikt over den undervernede koden for å forstå det diskuterte konseptet:
offentlig klasse fusjonerer
Offentlig statisk tomrom MergedArray (int [] LeftArray, Int [] RightArray, Int [] FinalArray, Int LeftArraysize, Int RightArraysize)
int element = 0, venstre = 0, høyre = 0;
mens (til venstreif (venstrearray [til venstre] finalArray [element ++] = venstreArray [venstre ++];
ellers
finalArray [element ++] = RightArray [Right ++];
mens (til venstrefinalArray [element ++] = venstreArray [venstre ++];
mens (til høyrefinalArray [element ++] = RightArray [Right ++];
I ovennevnte kode som er tildelt for sammenslåing, bruk følgende trinn:
Gjennomføring
La oss nå gå videre til følgende kodebit:
public static void DIILEARRAY (int [] matrise, int -lengde)
hvis (lengde < 2)return;
int div = lengde / 2;
int [] larray = new int [div];
int [] rarray = new int [lengde-div];
int temp = 0;
for (int i = 0; iif (ilarray [i] = array [i];
ellers
rarray [temp] = array [i];
temp = temp+1;
DIILEARRAY (Larray, Div);
DIILEARRAY (rarray, lengde-div);
MergedArray (Larray, Rarray, Array, Div, Lengde-Div);
I denne koden implementert for å dele den beståtte matrisen, utfør trinnene under levert:
Gjennomføring
Nå, oversikt over "hoved-”Kode:
public static void main (String args [])
int [] MergeSortArray = 30, 12, 46, 6, 17, 23;
DIILEARRAY (MergesortArray, MergesortArray.lengde);
for (int i = 0; i< mergesortArray.length;++i)
System.ute.print (MergeSortArray [i]+ "");
I “hoved-”, Bruk følgende trinn:
Gjennomføring
Hele koden
offentlig klasse fusjonerer
Offentlig statisk tomrom MergedArray (int [] LeftArray, Int [] RightArray, Int [] FinalArray, Int LeftArraysize, Int RightArraysize)
int element = 0, venstre = 0, høyre = 0;
mens (til venstreif (venstrearray [til venstre] finalArray [element ++] = venstreArray [venstre ++];
ellers
finalArray [element ++] = RightArray [Right ++];
mens (til venstrefinalArray [element ++] = venstreArray [venstre ++];
mens (til høyrefinalArray [element ++] = RightArray [Right ++];
public static void DIILEARRAY (int [] matrise, int -lengde)
hvis (lengde < 2)return;
int div = lengde / 2;
int [] larray = new int [div];
int [] rarray = new int [lengde-div];
int temp = 0;
for (int i = 0; iif (ilarray [i] = array [i];
ellers
rarray [temp] = array [i];
temp = temp+1;
DIILEARRAY (Larray, Div);
DIILEARRAY (rarray, lengde-div);
MergedArray (Larray, Rarray, Array, Div, Lengde-Div);
public static void main (String args [])
int [] MergeSortArray = 30, 12, 46, 6, 17, 23;
DIILEARRAY (MergesortArray, MergesortArray.lengde);
for (int i = 0; i< mergesortArray.length;++i)
System.ute.print (MergeSortArray [i]+ "");
Produksjon
I denne utgangen kan det antydes at den passerte matrisen er sortert på riktig måte.
Konklusjon
Merge -sorteringen er basert på “splitt og hersk”Algoritme slik at matrisen er delt inn i like halvdeler og slår seg sammen igjen basert på de sorterte elementene. Utfallet av algoritmen hentes i samsvar med den originale på en sortert måte. Denne bloggen diskuterte implementeringen av Merge Sort -algoritmen i Java.