快速排序
代码实现
public <T extends Comparable<T>> void quickSort(T[] arr, int left, int right) {
if (left >= right) {
return;
}
int i = left;
int j = right;
T val = arr[left];
while (i < j) {
while (i < j && arr[j].compareTo(val) >= 0) {
j--;
}
while (i < j && arr[i].compareTo(val) <= 0) {
i++;
}
if (i < j) {
T temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
arr[left] = arr[i];
arr[i] = val;
quickSort(arr, left, i - 1);
quickSort(arr, j + 1, right);
}
这篇博客详细介绍了快速排序算法的Java实现,包括其主要逻辑和递归过程。通过一个具体的代码实例,展示了如何从左到右选择基准值并进行分区操作,最终实现数组的排序。此外,还讨论了算法的时间复杂度和效率。
2368

被折叠的 条评论
为什么被折叠?



