欢迎访问宙启技术站
智能推送

用Java编写快速排序算法的方法

发布时间:2023-06-22 01:16:24

快速排序算法是一种基于比较的排序算法,其基本思想是通过一趟排序将要排序的数据分割成两个部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按照此方式对两部分数据分别进行快速排序,以达到整个序列有序的目的。

Java编写快速排序算法的方法如下:

1.确定基准元素

在数组中选择一个基准元素,一般选择 个或者最后一个元素。

2.分区操作

遍历整个数组,将数组中小于基准元素的放在左边,大于基准元素的放在右边,相等的可以任意一边。

3.递归排序左右子数组

递归对左右两个子数组进行排序,直到子数组大小为0或1时,排序完成。

4.合并数组

将排好序的左右子数组合并成一个有序数组。

下面是使用Java语言编写的快速排序算法的示例代码:

public class QuickSort {

    public static void quickSort(int[] array, int left, int right) {

        if (left < right) {

            int pivot = partition(array, left, right);

            quickSort(array, left, pivot - 1);

            quickSort(array, pivot + 1, right);

        }

    }

    private static int partition(int[] array, int left, int right) {

        int pivot = array[left];

        int i = left + 1;

        int j = right;

        while (true) {

            while (i < right && array[i] < pivot) {

                i++;

            }

            while (j > left && array[j] >= pivot) {

                j--;

            }

            if (i >= j) {

                break;

            }

            swap(array, i, j);

        }

        swap(array, left, j);

        return j;

    }

    private static void swap(int[] array, int i, int j) {

        int temp = array[i];

        array[i] = array[j];

        array[j] = temp;

    }

}

上述代码中,quickSort方法递归调用partition方法,partition方法将数组分为左右两个部分,并返回基准元素的位置,以便进行递归排序。swap方法用于交换两个元素的位置。