写一个java快速排序代码
时间: 2023-03-21 15:03:56 浏览: 98
好的,以下是Java语言的快速排序代码:
```java
public class QuickSort {
public static void quickSort(int[] arr, int left, int right) {
if (left >= right) {
return;
}
int pivotIndex = partition(arr, left, right);
quickSort(arr, left, pivotIndex - 1);
quickSort(arr, pivotIndex + 1, right);
}
private static int partition(int[] arr, int left, int right) {
int pivot = arr[left];
int i = left + 1;
int j = right;
while (true) {
while (i <= j && arr[i] < pivot) {
i++;
}
while (i <= j && arr[j] > pivot) {
j--;
}
if (i >= j) {
break;
}
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
arr[left] = arr[j];
arr[j] = pivot;
return j;
}
public static void main(String[] args) {
int[] arr = {5, 2, 8, 3, 1, 6, 9};
quickSort(arr, 0, arr.length - 1);
for (int i : arr) {
System.out.print(i + " ");
}
}
}
```
该代码实现了快速排序算法,它使用了分治的思想,将数组分为两个部分进行排序。在partition函数中,以最左边的数作为基准值pivot,通过两个指针i和j从数组两端向中间扫描,交换不符合要求的元素,直到i和j相遇。然后将pivot与arr[j]进行交换,这样就完成了一次排序。接着,递归地对左半部分和右半部分分别进行排序,直到整个数组有序。最后,在main函数中测试代码,并输出排序结果。
阅读全文