基本思想:
通过一趟排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据都比另一部分的所有数据都小。
public class QuickSort {
//分割函数
public static int partitionByPivotValue(int[] arr,int left,int right){
int pivotValue=arr[left];
while(left<right){
while(left<right && arr[right]>= pivotValue){
--right;
}
arr[left]=arr[right];
while(left<right && arr[left]<= pivotValue){
++left;
}
arr[right]=arr[left];
arr[left]=pivotValue;
}
return left;
}
public static void quickSort(int[] arr,int left,int right) {
int pivot;
if(left<right){
pivot=partitionByPivotValue(arr, left, right);
quickSort(arr, left, pivot-1);
quickSort(arr, pivot+1, right);
}
}
public static void main(String[] args) {
int []arr={ 38, 65, 97, 76, 13, 27,49 };
quickSort(arr, 0, arr.length-1);
for(int i=0;i<arr.length-1;i++){
System.out.print(arr[i]+" ");
}
}
}