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实现快速排序的代码,希望对大家有所帮助。