java中对 -9,78,0,23,-567,70 进行从小到大的排序,要求使用快速排序法,请写出代码和输出结果
时间: 2023-08-23 13:05:57 浏览: 36
好的,以下是使用Java语言实现快速排序的代码:
```java
public class QuickSort {
public static void main(String[] args) {
int[] arr = {-9, 78, 0, 23, -567, 70};
quickSort(arr, 0, arr.length - 1);
System.out.println(Arrays.toString(arr));
}
public static void quickSort(int[] arr, int left, int right) {
if (left < right) {
int pivotIndex = partition(arr, left, right);
quickSort(arr, left, pivotIndex - 1);
quickSort(arr, pivotIndex + 1, right);
}
}
public static int partition(int[] arr, int left, int right) {
int pivot = arr[left];
int l = left + 1;
int r = right;
while (l <= r) {
if (arr[l] < pivot && arr[r] > pivot) {
swap(arr, l, r);
l++;
r--;
}
if (arr[l] >= pivot) {
l++;
}
if (arr[r] <= pivot) {
r--;
}
}
swap(arr, left, r);
return r;
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
```
输出结果为:`[-567, -9, 0, 23, 70, 78]`
快速排序的基本思想是,选取一个基准值,将数组分为两个部分,一部分比基准值小,另一部分比基准值大。然后对这两个部分分别进行快速排序,递归执行,直到排序完成。