Java 快速排序算法代码实现
以下是一个经典的快速排序算法的 Java 代码实现:
public class QuickSort {
public void quickSort(int[] arr) {
if (arr == null || arr.length == 0) {
return;
}
quickSort(arr, 0, arr.length - 1);
}
private void quickSort(int[] arr, int left, int right) {
if (left >= right) {
return;
}
int pivot = partition(arr, left, right);
quickSort(arr, left, pivot - 1);
quickSort(arr, pivot + 1, right);
}
private int partition(int[] arr, int left, int right) {
int pivot = arr[right];
int i = left - 1;
for (int j = left; j < right; j++) {
if (arr[j] < pivot) {
i++;
swap(arr, i, j);
}
}
swap(arr, i + 1, right);
return i + 1;
}
private void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void main(String[] args) {
int[] arr = {5, 2, 6, 1, 3, 4};
QuickSort qs = new QuickSort();
qs.quickSort(arr);
for (int num : arr) {
System.out.print(num + " ");
}
}
}
这个代码实现了快速排序算法的核心逻辑。在quickSort方法中,我们首先检查数组是否为空或长度为0。如果为空,直接返回;否则,调用递归方法quickSort进行排序。
递归方法quickSort中,我们选择数组最后一个元素作为基准点(pivot),然后调用partition方法对数组进行分区。partition方法使用两个指针i和j,将小于基准点的元素交换到左侧,并返回基准点的位置。最后,分别对左半部分和右半部分进行递归排序。
swap方法用于交换数组中两个元素的位置。最后,在main方法中,我们使用示例数组进行测试,并打印排序后的结果。
通过这个代码示例,你可以更好地理解快速排序算法的实现细节,并尝试在自己的项目中应用它。
原文地址: https://www.cveoy.top/t/topic/imp2 著作权归作者所有。请勿转载和采集!