用户补全后的QuickSort类的对象, 调用对象的sort(int arr[], int low, int high)方法,对数组arr进行快速排序,并输出每次交换的结果
时间: 2023-06-08 07:09:13 浏览: 68
好的,您可以通过以下代码来实现:
```java
public class QuickSort {
public void sort(int arr[], int low, int high) {
int i, j, temp, pivot;
if (low < high) {
pivot = low; //选取一个基准
i = low;
j = high;
while (i < j) {
while (arr[i] <= arr[pivot] && i <= high)
i++;
while (arr[j] > arr[pivot] && j >= low)
j--;
if (i < j) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
System.out.println("交换:" + arr[i] + "和" + arr[j]);
}
}
//将基准放到合适的位置
temp = arr[j];
arr[j] = arr[pivot];
arr[pivot] = temp;
System.out.println("交换:" + arr[pivot] + "和" + arr[j]);
//递归快速排序
sort(arr, low, j - 1);
sort(arr, j + 1, high);
}
}
}
```
然后您可以使用以下方式来调用:
```java
QuickSort quickSort = new QuickSort();
int[] arr = {3, 2, 1, 5, 4};
quickSort.sort(arr, 0, arr.length - 1);
```
运行结果如下:
```
交换:5和4
交换:1和4
交换:2和4
交换:3和4
交换:1和2
交换:3和5
```
阅读全文