用java语言写一个快速排序
时间: 2023-07-13 12:31:06 浏览: 37
下面是用Java语言实现快速排序的示例代码:
```java
public class QuickSort {
public static void sort(int[] arr, int low, int high) {
if (low < high) {
int index = partition(arr, low, high);
sort(arr, low, index - 1);
sort(arr, index + 1, high);
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;
return i + 1;
}
public static void main(String[] args) {
int[] arr = {5, 2, 6, 1, 3, 9};
sort(arr, 0, arr.length - 1);
for (int i : arr) {
System.out.print(i + " ");
}
}
}
```
快速排序的基本思想是:选择一个基准数,将小于基准数的放在其左边,大于基准数的放在其右边,然后递归对左右两个子序列进行排序,直到整个序列有序。在实现中,我们可以选择序列中的最后一个数作为基准数,然后使用双指针法将小于基准数的数交换到其左边,大于基准数的数交换到其右边。最后再将基准数放在中间位置,然后递归对左右两个子序列进行排序。