Heim >Java >javaLernprogramm >Programm zur Zusammenführungssortierung in Java
Das Programm zur Zusammenführungssortierung in Java ist einer der am weitesten verbreiteten und effizientesten Algorithmen. Die Zusammenführungssortierung basiert auf der Divide-and-Conquer-Technik, bei der ein gegebenes Problem in mehrere Teilprobleme aufgeteilt und jedes Teilproblem unabhängig gelöst wird. Wenn die Teilprobleme gelöst sind, kombinieren wir ihre Ergebnisse, um die endgültige Lösung des Problems zu erhalten. Der Zusammenführungssortierungsalgorithmus kann mithilfe der Rekursion implementiert werden, da dabei mit Teilproblemen und nicht mit dem Hauptproblem gearbeitet wird.
Betrachten wir ein unsortiertes Array, das mithilfe des Merge-Sort-Algorithmus sortiert werden muss. Hier sind die Schritte zum Sortieren eines Arrays mit Werten: 18, 8, 4, 13, 10, 12, 7 und 11:
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Hier ist ein Codebeispiel, das die Implementierung der Zusammenführungssortierung in Java zeigt:
Code:
package com.edubca.sorting; public class MergeSort { private int[] array; private int[] tempMergedArr; private int length; public static void main(String a[]){ int[] inputArr = {18, 8, 4, 13, 10, 12, 7, 11}; MergeSort mergeSort = new MergeSort(); mergeSort.sort(inputArr); for(int i:inputArr){ System.out.print(i + " "); } } public void sort(int inputArr[]) { this.array = inputArr; this.length = inputArr.length; this.tempMergedArr = new int[length]; performMergeSort(0, length - 1); } private void performMergeSort(int lowerIndex, int higherIndex) { if (lowerIndex < higherIndex) { int middle = lowerIndex + (higherIndex - lowerIndex) / 2; // Sort the left side of the array call performMergeSort recursively performMergeSort(lowerIndex, middle); // Sort the right side of the array call performMergeSort recursively performMergeSort(middle + 1, higherIndex); // Merge subparts using a temporary array mergeData(lowerIndex, middle, higherIndex); } } private void mergeData (int lowerIndex, int middle, int higherIndex) { for (int i = lowerIndex; i <= higherIndex; i++) { tempMergedArr[i] = array[i]; } int i = lowerIndex; int j = middle + 1; int k = lowerIndex; while (i <= middle && j <= higherIndex) { if (tempMergedArr[i] <= tempMergedArr[j]) { array[k] = tempMergedArr[i]; i++; } else { array[k] = tempMergedArr[j]; j++; } k++; } while (i <= middle) { array[k] = tempMergedArr[i]; k++; i++; } } }
Der obige Code erzeugt ein sortiertes Array als Ausgabe.
Ausgabe:
Zusammenführungssortierung kann in den folgenden Szenarien verwendet werden:
Die folgenden Punkte analysieren die Komplexität der Zusammenführungssortierung:
Die folgenden Punkte vergleichen die Zusammenführungssortierung mit anderen Algorithmen:
Der Artikel kommt zu dem Schluss, dass die Zusammenführungssortierung ein wichtiges Konzept ist, das es zu verstehen gilt, wenn es um Algorithmen geht.
Das obige ist der detaillierte Inhalt vonProgramm zur Zusammenführungssortierung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!