/**
*/
public class QuickSort {
public static void main(String[] args) {
int[] ints = {10, 1};
int[] sort = sort(ints, 0, ints.length - 1);
System.out.println(Arrays.toString(sort));
}
public static int[] sort(int[] arr, int l, int r) {
if (l >= r) {
return arr;
}
int start = l;
int end = r;
int base = arr[l];
while (l != r) {
while (r > l && arr[r] >= base) {
r--;
}
while (r > l && arr[l] <= base) {
l++;
}
swap(arr, l, r);
}
//两边哨兵相遇,该元素的左右两边都没
swap(arr, start, l);
//从当前相遇点分解为左右两部分
sort(arr, start, l - 1);
sort(arr, r + 1, end);
return arr;
}
private static void swap(int[] arr, int l, int r) {
int temp = arr[r];
arr[r] = arr[l];
arr[l] = temp;
}
}
快速排序
最新推荐文章于 2023-12-01 23:14:38 发布