1.基本原理
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7b19d870b9d27c726df9ae5f9eb4db77.png)
2.代码实现
package com.yl.algorithm;
import java.util.Arrays;
public class QuickSort {
public static void main(String[] args) {
int[] arr = {9, 7, 3, 30, 20, 50, 10, 5};
quickSort(arr,0,arr.length-1);
System.out.println(Arrays.toString(arr));
}
private static void quickSort(int[] arr, int startIndex, int endIndex) {
if (startIndex < endIndex) {
int pos = getDestPosition(arr,startIndex,endIndex);
quickSort(arr,startIndex,pos-1);
quickSort(arr,pos+1,endIndex);
}
}
private static int getDestPosition(int[] arr, int startIndex, int endIndex) {
int basic = arr[endIndex];
int target = startIndex;
for (int i = startIndex; i < endIndex; i++) {
if (arr[i] <= basic) {
int temp = arr[i];
arr[i] = arr[target];
arr[target] = temp;
target++;
}
}
int temp = arr[target];
arr[target] = arr[endIndex];
arr[endIndex] = temp;
System.out.println(Arrays.toString(arr));
return target;
}
}