生成一段Java的快速排序
时间: 2023-07-06 12:43:43 浏览: 50
好的,下面是一段Java的快速排序代码实现:
```
public static void quickSort(int[] nums, int start, int end) {
if (start < end) {
int pivot = partition(nums, start, end);
quickSort(nums, start, pivot - 1);
quickSort(nums, pivot + 1, end);
}
}
private static int partition(int[] nums, int start, int end) {
int pivot = nums[start];
int left = start + 1;
int right = end;
while (left <= right) {
while (left <= right && nums[left] < pivot) {
left++;
}
while (left <= right && nums[right] >= pivot) {
right--;
}
if (left < right) {
swap(nums, left, right);
}
}
swap(nums, start, right);
return right;
}
private static void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
```
这段代码实现了快速排序算法,可以对一个数组进行升序排序。其中,quickSort()方法是递归实现的,每次选择一个基准元素,将数组划分为两个部分,然后对左右两个部分分别进行排序;partition()方法是用来划分数组的,它使用了左右指针的方法,将小于基准元素的数放在左边,大于等于基准元素的数放在右边;swap()方法是用来交换数组中两个元素的位置。
相关推荐
![class](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)