用图教我 Java快速排序
时间: 2023-05-28 14:07:20 浏览: 107
快速排序 Java 示例
很高兴能帮你,下面是 Java 快速排序的图解步骤:
1. 选择一个基准元素
![step1](https://i.imgur.com/1Y9T9Hs.png)
2. 将数组按照基准元素分为两部分,一部分比基准元素小,一部分比基准元素大
![step2](https://i.imgur.com/4vJ5cYd.png)
3. 对左边的部分和右边的部分分别进行递归排序
![step3](https://i.imgur.com/nPf6Jjw.png)
4. 合并左右两部分得到最终的排序结果
![step4](https://i.imgur.com/6w1d54W.png)
Java 代码实现:
```java
public static void quickSort(int[] arr, int left, int right) {
if (left < right) {
int pivot = partition(arr, left, right);
quickSort(arr, left, pivot - 1);
quickSort(arr, pivot + 1, right);
}
}
public static int partition(int[] arr, int left, int right) {
int pivot = arr[left];
int i = left + 1;
int j = right;
while (i <= j) {
while (i <= j && arr[i] < pivot) {
i++;
}
while (i <= j && arr[j] > pivot) {
j--;
}
if (i <= j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}
arr[left] = arr[j];
arr[j] = pivot;
return j;
}
```
希望这个图解能够帮到你,祝你学习愉快!
阅读全文