ZVVQ代理分享网

Java实现快速排序的代码有哪些?

作者:zvvq博客网
导读Java快速排序代码 快速排序是一种常用的排序算法,它的时间复杂度为O(nlogn),在大多数情况下比其他排序算法都要快。本文将介绍Java实现快速排序的代码。 快速排序的基本思想是选取

Java快速排序代码

快速排序是一种常用的排序算法,它的时间复杂度为O(nlogn),在大多数情况下比其他排序算法都要快。本文将介绍Java实现快速排序的代码。

快速排序的基本思想是选取一个基准数,将数组分为两部分,一部分比基准数小,一部分比基准数大,然后对这两部分分别进行递归排序,最终得到有序数组。

以下是Java实现快速排序的代码:

```

public class QuickSort {

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

if (left < right) {

int pivotIndex = partition(arr, left, right);

quickSort(arr, left, pivotIndex - );

quickSort(arr, pivotIndex + , right);

}

}

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

int pivot = arr[left];

int i = left + ;

int j = right;

while (true) {

while (i <= j && arr[i] <= pivot) i++;

while (i <= j && arr[j] > pivot) j--;

if (i >= j) break;

swap(arr, i, j);

}

swap(arr, left, j);

return j;

}

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

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

}

```

代码中的quickSort方法是递归排序的主方法,它接收三个参数,分别是待排序数组、左边界和右边界。如果左边界小于右边界,则选取一个基准数,对数组进行划分,并对划分后的两部分分别进行递归排序。

partition方法是划分数组的方法,它接收三个参数,分别是待划分数组、左边界和右边界。该方法选取数组左边界作为基准数,然后从左往右和从右往左扫描数组,将比基准数小的元素放在左边,将比基准数大的元素放在右边,最终返回基准数所在位置。

swap方法是交换数组中两个元素的方法,它接收三个参数,分别是待交换数组和两个元素的下标。

快速排序是一种高效的排序算法,在实际开发中经常被使用。以上就是Java实现快速排序的代码,希望对大家有所帮助。