在编程的世界里,快速排序是一种非常高效且广泛应用的排序算法。它采用分治法策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。今天,我将用简洁明了的Java代码来展示如何实现快速排序。🔍💡
首先,我们需要定义一个`partition`函数,用于确定一个基准值,并使数组分为两部分,左边的元素都小于基准值,右边的元素都大于基准值。🎉
```java
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++;
// swap arr[i] and arr[j]
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
// swap arr[i+1] and arr[high] (or pivot)
int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;
return i + 1;
}
```
接下来,我们编写`quickSort`函数,该函数负责递归地对数组进行分区。🎈
```java
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
```
最后,我们可以通过一个简单的测试用例来验证我们的快速排序实现是否正确。🌟
```java
public static void main(String[] args) {
int[] arr = {10, 7, 8, 9, 1, 5};
int n = arr.length;
quickSort(arr, 0, n - 1);
System.out.println("Sorted array: ");
printArray(arr);
}
private static void printArray(int[] arr) {
for (int value : arr) {
System.out.print(value + " ");
}
System.out.println();
}
```
通过以上步骤,我们就成功地使用Java实现了快速排序算法。希望这个简短的教程能帮助你理解快速排序的工作原理以及如何在Java中实现它。📚👩💻
快速排序 Java 编程