Java实现快速排序算法

 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 函数对其进行排序,然后打印排序后的结果。

Java实现快速排序算法_第1张图片

你可能感兴趣的:(java,排序算法,算法)