Der folgende Editor bietet Ihnen eine Java-Schnellsortierung QuickSort (Beispiel). Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Kommen Sie und werfen Sie einen Blick mit dem Editor
Schnelle Sortierung
---------------- -------------------------------------------------- ----
Gedanken
Wie oben gezeigt: Legen Sie zu Beginn jeder Schnellsortierung einen Schlüssel fest, key= array[low], dann von hoch nach links gehen, den Wert finden, der kleiner als der Schlüssel ist, ihn an die untere Position kopieren, dann von niedrig nach rechts gehen, um den Wert zu finden, der größer als der Schlüssel ist, und ihn an die hohe Position kopieren , bis niedrig = hoch endet, wird
Der Schlüssel wird in die niedrige Position kopiert.
Nach der ersten Divisionsrunde in der obigen Abbildung wird die Position von 32 gefunden und dann die linke und rechte Seite von 32 rekursiv sortiert.
Code:
package Sort; import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int array[]={32, 12, 7, 78, 23, 45}; quickSort(array,0,array.length-1); System.out.println(Arrays.toString(array)); } public static void quickSort(int array[],int left,int right) { if(left>=right) { return ; } int i=left; int j=right; int key=array[left]; while(i<j) { while(i<j&&array[j]>key) { j--; } array[i]=array[j]; //从后往前找到第一个比key小的数与array[i]交换; while(i<j&&array[i]<key) { i++; } array[j]=array[i]; //从前往后找到第一个比key大的数与array[j]交换; } array[i]=key; //一趟快排之后已经将key的位置找到。 quickSort(array,left,i-1); //对key左边的进行排序 quickSort(array,i+1,right); //对key右边的进行排序 } }
Das obige ist der detaillierte Inhalt vonJava-Implementierung des QuickSort-Beispiels für die schnelle Sortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!