快速排序算法java
时间: 2023-11-08 11:04:51 浏览: 93
快速排序算法 java.doc
快速排序是一种采用分治法解决问题的典型应用,也是冒泡排序的一种改进。它的基本思想是通过一轮排序将待排记录分割成独立的两部分,其中一部分均比另一部分小,则可分别对这两部分继续进行排序,已达到整个序列有序。下面是一个使用Java实现的快速排序算法:
```java
public static int partition(int[] array, int left, int right) {
int pivot = array[left];
while (left < right) {
while (left < right && array[right] >= pivot) {
right--;
}
array[left] = array[right];
while (left < right && array[left] <= pivot) {
left++;
}
array[right] = array[left];
}
array[left] = pivot;
return left;
}
public static void quickSort(int[] array) {
quick(array, 0, array.length - 1);
}
public static void quick(int[] array, int start, int end) {
if (start >= end) {
return;
}
int pivot = partition(array, start, end);
quick(array, start, pivot - 1);
quick(array, pivot + 1, end);
}
```
这是一种基于Hoare划分方式的快速排序算法。它首先选择一个枢轴元素,然后将数组分割为两个部分,一部分包含所有小于枢轴元素的值,另一部分包含所有大于枢轴元素的值。然后,递归地对这两部分进行排序,最终得到正确的排序结果。
阅读全文