java中对一个数组{33,44,57,67,86}快速排序从小到大排序代码
时间: 2023-07-01 10:16:10 浏览: 114
以下是 Java 代码实现:
```java
public class QuickSort {
public static void main(String[] args) {
int[] arr = {33, 44, 57, 67, 86};
int n = arr.length;
quickSort(arr, 0, n-1);
System.out.print("从小到大排序后的数组为: ");
for (int i = 0; i < n; i++) {
System.out.print(arr[i] + " ");
}
}
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivotPos = partition(arr, low, high);
quickSort(arr, low, pivotPos-1);
quickSort(arr, pivotPos+1, high);
}
}
public static int partition(int[] arr, int low, int high) {
int pivot = arr[low];
while (low < high) {
while (low < high && arr[high] >= pivot) {
high--;
}
arr[low] = arr[high];
while (low < high && arr[low] <= pivot) {
low++;
}
arr[high] = arr[low];
}
arr[low] = pivot;
return low;
}
}
```
输出结果为:
```
从小到大排序后的数组为: 33 44 57 67 86
```
快速排序的基本思想是:选择一个基准元素,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有元素都比基准元素小,另一部分的所有元素都比基准元素大。然后对这两部分分别进行快速排序,重复以上过程,直到整个序列有序。
阅读全文