快速排序算法 java代码
时间: 2023-10-11 08:13:23 浏览: 82
快速排序算法java代码
4星 · 用户满意度95%
以下是一个快速排序算法的Java代码实现:
```
public class QuickSort {
public static void main(String[] args) {
int[] arr = {5, 3, 8, 4, 2, 7, 1, 10, 6, 9};
quickSort(arr, 0, arr.length - 1);
for (int i : arr) {
System.out.print(i + " ");
}
}
public static void quickSort(int[] arr, int start, int end) {
if (start < end) {
int pivotIndex = partition(arr, start, end);
quickSort(arr, start, pivotIndex - 1);
quickSort(arr, pivotIndex + 1, end);
}
}
public static int partition(int[] arr, int start, int end) {
int pivot = arr[end];
int i = start - 1;
for (int j = start; j < end; 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[end];
arr[end] = temp;
return i + 1;
}
}
```
该代码使用递归实现快速排序算法,其中 `quickSort` 方法用于递归排序子数组,而 `partition` 方法则用于将数组分成两部分并返回枢轴元素的索引。在 `partition` 方法中,使用 `i` 记录小于枢轴元素的最后一个元素的索引,并将小于枢轴元素的元素与 `i` 交换位置。最后,将枢轴元素放到它的正确位置,并返回该位置的索引。
阅读全文