首页 > 代码库 > 快速排序(升序)

快速排序(升序)

1、算法思

通过一趟排序将要排序的数据分割成独立的两部分,其中左边的部分的所有数据都比右边的部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

2、算法实现

    package test;            public class QuickSort {          public static void main(String[] args) {              int[] n ={1,3,6,2,9,6,8,7};              quicksort(n,0,7);              for (int i : n) {                  System.out.print(i+"\t");              }                        }          public static void quicksort(int[] n,int left,int right){              int dp;              if(left<right){                  dp = partition(n,left,right);                  quicksort(n,left,dp-1);                  quicksort(n,dp+1,right);              }          }          public static int partition(int[] n,int left,int right) {              int pivot = n[left];              while(left<right){                  while(left<right&&n[right]>=pivot)                      right--;                  if(left<right)                      n[left++]=n[right];                  while(left<right&&n[left]<=pivot)                      left++;                  if(left<right)                      n[right--]=n[left];              }              n[left]=pivot;              return left;                }      }  

 

快速排序(升序)