Heim >Java >javaLernprogramm >Java-Implementierung des QuickSort-Beispiels für die schnelle Sortierung

Java-Implementierung des QuickSort-Beispiels für die schnelle Sortierung

黄舟
黄舟Original
2017-10-09 09:53:111936Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn