帮忙写一个快速排序算法 java
时间: 2023-07-06 22:34:38 浏览: 93
好的,下面是一个 Java 实现的快速排序算法:
```java
public class QuickSort {
public static void quickSort(int[] arr, int left, int right) {
if (left < right) {
int pivot = partition(arr, left, right);
quickSort(arr, left, pivot - 1);
quickSort(arr, pivot + 1, right);
}
}
public static int partition(int[] arr, int left, int right) {
int pivot = arr[right];
int i = left - 1;
for (int j = left; j < right; j++) {
if (arr[j] < pivot) {
i++;
swap(arr, i, j);
}
}
swap(arr, i + 1, right);
return i + 1;
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
```
快速排序的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则可以分别对这两部分记录继续进行排序,以达到整个序列有序的目的。在上面的代码中,`quickSort` 方法是递归调用的,每次将待排记录分隔成两部分,分别进行排序;而 `partition` 方法则是用来进行一趟排序的过程,将待排记录分成两部分。
阅读全文