package sort;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int arr[]= {-9,78,0,23,-567,70};
quickSort(arr, 0, arr.length-1);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
public static void quickSort(int arr[],int left,int right) {
if(left>right) {
return;
}
int i=left,j=right;
int base=arr[left];
if(i!=j) { //顺序很重要,先从右边开始往左找,直到找到比base值小的数
while(base<=arr[j]&&i<j) {
j--;
}
while(base>=arr[i]&&i<j) {
i++;
}
if(i<j) { //上面的循环结束表示找到了位置或者(i>=j)了,交换两个数在数组中的位置
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
// 将基准数放到中间的位置(基准数归位)
arr[left]=arr[i];
arr[i]=base;
quickSort(arr, left, i-1);
quickSort(arr, i+1, right);
}
}