In der Java -Programmierung kann es Fälle geben, in denen der Entwickler die Masseneinträge sortieren muss. Zum Beispiel das Anordnen oder Analysieren der zufällig generierten Werte. In solchen Fällen die “Zusammenführen, sortierenIn Java ist effektiv und schneller und verbraucht so weniger Zeit, um die längeren Einträge oder Listen im Vergleich zu anderen Algorithmen zu sortieren. I.e., “Blasenart”.
Dieser Blog wird die Implementierung des Algorithmus „Merge Sort“ in Java erläutern.
So implementieren Sie eine "Zusammenführungsart" in Java?
Der "Zusammenführen, sortieren”Basiert auf dem“dividieren und erobernAlgorithmus so, dass das Array in gleiche Hälften unterteilt und dann weiter unterteilt wird, bis die Teilung nicht mehr durchgeführt werden kann. Nachdem das Array unterteilt ist, wird es erneut auf der Grundlage der Elemente auf sortierter (aufsteigender) Weise verschmolzen.
Demonstration des Algorithmus „Merge Sort“
Überlegen wir den untergegewalten Code, um das besprochene Konzept zu verstehen:
öffentliche Klasse Mergesort
public static void mergedArray (int [] LeftArray, int [] rightArray, int [] Finalarray, int LeftArraysize, int rightArraysize)
int item = 0, links = 0, rechts = 0;
während (linksif (linksarray [links] FinalArray [Item ++] = LeftArray [links ++];
anders
FinalArray [Artikel ++] = RightArray [rechts ++];
während (linksFinalArray [Item ++] = LeftArray [links ++];
während (richtigFinalArray [Artikel ++] = RightArray [rechts ++];
Wenden Sie im obigen Code, der zum Zusammenführen zugewiesen ist, die folgenden Schritte an:
Implementierung
Gehen wir nun mit dem folgenden Code -Ausschnitt fort:
public static void dividearray (int [] array, int länge)
if (Länge < 2)return;
int div = Länge / 2;
int [] larray = new int [div];
int [] rarray = new int [Länge-div];
int temp = 0;
für (int i = 0; iif (ilarray [i] = array [i];
anders
RARRAY [TEMP] = Array [i];
temp = temp+1;
Dividearray (Larray, Div);
Dividearray (Rarray, Länge-div);
mergedArray (Larray, Rarray, Array, Div, Länge-div);
Führen Sie in diesem Code, der zur Dividierung des bestandenen Array implementiert ist, die folgenden Schritte aus:
Implementierung
Übersicht über die “hauptsächlich”Code:
public static void main (String args [])
int [] mergesortArray = 30, 12, 46, 6, 17, 23;
Dividearray (MergesortArray, MergesortArray.Länge);
für (int i = 0; i< mergesortArray.length;++i)
System.aus.print (mergesortArray [i]+ "");
Im "hauptsächlich”, Wenden Sie die folgenden Schritte an:
Implementierung
Ganzer Code
öffentliche Klasse Mergesort
public static void mergedArray (int [] LeftArray, int [] rightArray, int [] Finalarray, int LeftArraysize, int rightArraysize)
int item = 0, links = 0, rechts = 0;
während (linksif (linksarray [links] FinalArray [Item ++] = LeftArray [links ++];
anders
FinalArray [Artikel ++] = RightArray [rechts ++];
während (linksFinalArray [Item ++] = LeftArray [links ++];
während (richtigFinalArray [Artikel ++] = RightArray [rechts ++];
public static void dividearray (int [] array, int länge)
if (Länge < 2)return;
int div = Länge / 2;
int [] larray = new int [div];
int [] rarray = new int [Länge-div];
int temp = 0;
für (int i = 0; iif (ilarray [i] = array [i];
anders
RARRAY [TEMP] = Array [i];
temp = temp+1;
Dividearray (Larray, Div);
Dividearray (Rarray, Länge-div);
mergedArray (Larray, Rarray, Array, Div, Länge-div);
public static void main (String args [])
int [] mergesortArray = 30, 12, 46, 6, 17, 23;
Dividearray (MergesortArray, MergesortArray.Länge);
für (int i = 0; i< mergesortArray.length;++i)
System.aus.print (mergesortArray [i]+ "");
Ausgang
In dieser Ausgabe kann impliziert werden, dass das bestandene Array angemessen sortiert ist.
Abschluss
Die Zusammenführungsart basiert auf dem “dividieren und erobernAlgorithmus, so dass das Array in gleiche Hälften unterteilt und basierend auf den sortierten Elementen erneut verschmolzen wird. Das Ergebnis des Algorithmus wird nach sortierter Weise gemäß dem ursprünglichen abgerufen. In diesem Blog wurde die Implementierung des Merge -Sort -Algorithmus in Java erörtert.