在这里插入代码片
```public class Kuaipai {
public static void main(String[] args) {
int[] array = {3,4,5,6,1,7,8,2};
quickSort(array);
for (int i : array) {
System.out.print(i+"\t");
}
}
private static void quickSort(int[] array,int l, int r) {
if (l >= r) {
return;
}
int i = l, j = r, index = array[i]; // 最左边的数作为基数
while (i < j) {
while (i < j && array[j] >= index) { // 向左寻找第一个小于index的数
j--;
}
if (i < j) {
array[i++] = array[j]; // 将array[j]填入array[i],并将i向右移动
}
while (i < j && array[i] < index) {// 向右寻找第一个大于index的数
i++;
}
if (i < j) {
array[j--] = array[i]; // 将array[i]填入array[j],并将j向左移动
}
}
array[i] = index; // 将基数填入最后的坑
quickSort(array, l, i - 1); // 递归调用,分治
quickSort(array, i + 1, r); // 递归调用,分治
}
public static void quickSort(int[] array) {
if (array == null || array.length == 0) {
return;
}
quickSort(array, 0, array.length - 1);
}
}
快排
最新推荐文章于 2023-07-12 13:07:43 发布