Detaillierte Erläuterung des Prinzips und der Implementierung von Java Quick Sort
Quick Sort ist ein häufig verwendeter Sortieralgorithmus. Seine Implementierung ist einfach und effizient und einer der klassischen rekursiven Algorithmen. In diesem Artikel werden das Prinzip und die Implementierung der Schnellsortierung ausführlich vorgestellt und spezifische Java-Codebeispiele bereitgestellt.
Die allgemeinen Schritte der Schnellsortierung sind wie folgt:
(1) Wählen Sie ein Benchmark-Element aus und teilen Sie die Sequenz in zwei Teile, sodass die Elemente auf der linken Seite kleiner oder gleich dem Benchmark sind und die Elemente auf der linken Seite rechts sind beide größer oder gleich dem Benchmark;
(2) Rekursiv die linken und rechten Elemente koppeln. Sortieren Sie beide Teile schnell.
public class QuickSort { public static void quickSort(int[] arr, int low, int high) { if (low < high) { int partitionIndex = partition(arr, low, high); quickSort(arr, low, partitionIndex - 1); quickSort(arr, partitionIndex + 1, high); } } private static int partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = low - 1; for (int j = low; j < high; j++) { if (arr[j] < pivot) { i++; swap(arr, i, j); } } swap(arr, i + 1, high); return i + 1; } private static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } public static void main(String[] args) { int[] arr = {9, 2, 4, 7, 1, 5, 3, 8, 6}; System.out.println("Before sorting:"); for (int num : arr) { System.out.print(num + " "); } quickSort(arr, 0, arr.length - 1); System.out.println(" After sorting:"); for (int num : arr) { System.out.print(num + " "); } } }
Im obigen Code definieren wir eine statische Methode quickSort
, die ein Integer-Array akzeptiert, beginnend mit und Endindex als Parameter. Bestimmen Sie in der Methode quickSort
zunächst, ob der Startindex kleiner als der Endindex ist. Wenn die Bedingung erfüllt ist, wird das Basiselement über die Methode partition
ausgewählt und partitioniert. In der partition
-Methode verwenden wir das letzte Element als Basiselement, durchlaufen die Elemente zwischen dem Startindex und dem Endindex und tauschen Elemente, die kleiner als das Basiselement sind, gegen Elemente aus, die größer als das Basiselement sind. Zum Schluss tauschen Sie das Basiselement in seine endgültige Position und bringen diese Position zurück. quickSort
,它接受一个整型数组、起始和结束索引作为参数。quickSort
方法中,首先判断起始索引是否小于结束索引,如果满足条件,则选取基准元素,并通过partition
方法进行分区操作。partition
方法中,我们以最后一个元素作为基准元素,遍历起始索引到结束索引之间的元素,将小于基准元素的元素与大于基准元素的元素进行交换。最后,交换基准元素到最终位置,返回该位置。
在main
方法中,我们创建一个整型数组并初始化。然后,调用quickSort
main
erstellen wir ein Integer-Array und initialisieren es. Rufen Sie dann die Methode quickSort
auf, um das Array zu sortieren und die Ergebnisse vor und nach der Sortierung auszugeben.
Zusammenfassung:
Das obige ist der detaillierte Inhalt vonAusführliche Diskussion der Prinzipien und Implementierungsschritte des Java-Schnellsortierungsalgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!