package org.example.core;
import org.example.Main;
public class QuickSort {
public static void main(String args[]){
int[]arr=new int[10];
for(int i=0;i<10;i++){
arr[i]= (int)(Math.random()*10);
}
for(int i=0;i<10;i++){
System.out.print(arr[i]);
System.out.print(" ");
}
solution(arr,0,9);
System.out.println(" ");
for(int i=0;i<10;i++){
System.out.print(arr[i]);
System.out.print(" ");
}
}
public static void solution(int[]arr,int left,int right){
if(left>=right)
return ;
int mid=partition(arr,left,right);
solution(arr,left,(mid-=1));
solution(arr,(mid+=1),right);
}
public static int partition(int[]arr,int l,int r){
if(l>=r)
return l;
int cur=arr[l];
int index=l;
l++;
while (l<r) {
if (arr[l] <= cur)
l++;
else {
int temp = arr[r];
arr[r] = arr[l];
arr[l] = temp;
r--;
}
}
if(arr[l]>cur)
l--;
arr[index]=arr[l];
arr[l]=cur;
return r;
}
}
快速排序(递归分治)
于 2020-04-01 15:48:44 首次发布