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

实现Java中快速排序算法

发布时间:2023-06-26 00:08:15

快速排序算法是一种非常有效的排序算法。它基于分治策略,将数组分成比某个关键字小的一部分和比它大的一部分。在分治过程中,它采用递归的方式来排序整个数组。它的时间复杂度为O(n log n),是一种常用的排序算法。

Java中快速排序算法的实现非常简单。下面是一种常见的实现方式:

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

    if (left < right) {

        int i = left, j = right, temp = arr[left];

        while (i < j) {

            while (i < j && arr[j] >= temp) {

                j--;

            }

            if (i < j) {

                arr[i] = arr[j];

                i++;

            }

            while (i < j && arr[i] < temp) {

                i++;

            }

            if (i < j) {

                arr[j] = arr[i];

                j--;

            }

        }

        arr[i] = temp;

        quickSort(arr, left, i - 1);

        quickSort(arr, i + 1, right);

    }

}

在这个算法中,left和right是数组的起点和终点,temp是用来分割数组的关键字。在每一次循环时,它都将移动i和j,直到i < j。在 个循环中,它将找到一个小于temp的元素,然后将它放在数组的左侧。在第二个循环中,它将找到一个大于或等于temp的元素,然后将它放在数组的右侧。在最后,它将交换i和j指向的元素,将temp放在它所应该在的位置上。然后,它将递归地对左右两个子数组进行排序,直到整个数组都被排序完成为止。

这是一种非常简单且高效的算法,在处理大量数据时非常有用。它已经被广泛应用于各种排序算法中,例如快速排序和归并排序。