Java实现快速排序算法
以下是Java中的快速排序算法实现示例:
public class QuickSort {
// 快速排序入口函数
public static void sort(int[] array) {
quickSortRecursive(array, 0, array.length - 1);
}
// 递归函数实现快速排序
private static void quickSortRecursive(int[] array, int left, int right) {
if (left < right) {
int pivotIndex = partition(array, left, right);
quickSortRecursive(array, left, pivotIndex - 1);
quickSortRecursive(array, pivotIndex + 1, right);
}
}
// 划分函数
private static int partition(int[] array, int left, int right) {
int pivot = array[right];
int i = left - 1;
for (int j = left; j < right; j++) {
if (array[j] < pivot) {
i++;
swap(array, i, j);
}
}
swap(array, i + 1, right);
return i + 1;
}
// 交换数组中的两个元素
private static void swap(int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
// 打印数组元素
public static void printArray(int[] array) {
for (int item : array) {
System.out.print(item + " ");
}
System.out.println();
}
// 测试示例
public static void main(String[] args) {
int[] array = {12, 4, 7, 2, 10, 1, 15, 3, 6, 11};
System.out.println("Original array:");
printArray(array);
sort(array);
System.out.println("Sorted array:");
printArray(array);
}
}
这段代码实现了快速排序算法。在 sort
函数中,我们首先调用 quickSortRecursive
函数来递归地执行快速排序。quickSortRecursive
函数中,我们首先选择一个基准元素(这里选择数组的最后一个元素作为基准),然后根据基准元素将数组分为两部分,左侧部分小于基准,右侧部分大于等于基准。然后再分别对左右两部分递归执行快速排序。
partition
函数负责实现划分步骤,它遍历数组,将小于基准的元素放在左侧,大于等于基准的元素放在右侧,并返回基准的最终位置。
swap
函数用于交换数组中的两个元素。
printArray
函数用于打印数组元素。
在 main
函数中,我们创建一个示例数组,并调用 sort
函数对其进行排序,然后打印排序后的结果。
编辑
评论内容