java快速排序

简介: java快速排序

public static void quickSort(int[] arr, int left, int right) {
if (left < right) {
int partitionIndex = partition(arr, left, right);
quickSort(arr, left, partitionIndex - 1);
quickSort(arr, partitionIndex + 1, right);
}
}

private static int partition(int[] arr, int left, int right) {
int pivot = arr[left]; // 选取开头元素作为pivot
int i = left + 1;
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); // 将pivot放到该放的位置
return j;
}

private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}

相关文章
|
搜索推荐 Java
【Java】快速排序
【Java】快速排序
97 0
|
搜索推荐 Java
Java递归思想与快速排序
Java递归思想与快速排序
76 0
|
3月前
|
搜索推荐 Java 索引
|
5月前
|
搜索推荐 算法 Java
Java中的快速排序、归并排序和堆排序是常见的排序算法。
【6月更文挑战第21天】Java中的快速排序、归并排序和堆排序是常见的排序算法。快速排序采用分治,以基准元素划分数组并递归排序;归并排序同样分治,先分割再合并有序子数组;堆排序通过构建堆来排序,保持堆性质并交换堆顶元素。每种算法各有优劣:快排平均高效,最坏O(n²);归并稳定O(n log n)但需额外空间;堆排序O(n log n)且原地排序,但不稳定。
48 3
|
5月前
|
Java
快速排序(java)
快速排序(java)
|
5月前
|
Java
快速排序-Java版本
快速排序-Java版本
25 0
|
6月前
|
算法 Java
<八大排序>万字详解(Java实现).插入排序、希尔排序、堆排序、快速排序、归并排序、计数排序...
<八大排序>万字详解(Java实现).插入排序、希尔排序、堆排序、快速排序、归并排序、计数排序
30 0
|
6月前
|
搜索推荐 Java
Java基础(快速排序算法)
Java基础(快速排序算法)
43 4
|
6月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--快速排序
数据结构与算法(Java篇)笔记--快速排序
|
6月前
|
搜索推荐 算法 Java
Java实现快速排序
Java实现快速排序
36 0
下一篇
无影云桌面