Home >Java >javaTutorial >Java implementation of quick sorting QuickSort example

Java implementation of quick sorting QuickSort example

黄舟
黄舟Original
2017-10-09 09:53:111934browse

The following editor will bring you a Java quick sorting QuickSort (example). The editor thinks it’s pretty good, so I’ll share it with you now and give it as a reference. Let’s follow the editor to take a look

Quick sort

---------------- -------------------------------------------------- ----

Thoughts

As shown above: At the beginning of each quick sort, set a key, key=array[ low], then go from high to the left, find the value that is less than the key, copy it to the low position, then go from low to the right to find the value that is greater than the key, copy it to the high position, until the end of low=high,

will The key is copied to the low position.

In the above figure, after the first round of division, the position of 32 is found, and then the left and right sides of 32 are sorted recursively.

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右边的进行排序
 }
}

The above is the detailed content of Java implementation of quick sorting QuickSort example. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn