上一篇
在编程世界中,排序算法是基础且重要的内容。而快速排序(Quick Sort)因其高效、简洁而被广泛使用。本教程将带你一步步理解并用Java语言实现快速排序,即使你是编程小白,也能轻松掌握!
快速排序是一种分治算法(Divide and Conquer)。它的基本思想是:选择一个“基准”(pivot)元素,将数组分为两部分——一部分比基准小,另一部分比基准大,然后递归地对这两部分进行排序。
下面是一个完整的Java快速排序实现代码:
public class QuickSort { // 快速排序主方法 public static void quickSort(int[] arr, int low, int high) { if (low < high) { // 获取分区索引 int pivotIndex = partition(arr, low, high); // 递归排序左半部分 quickSort(arr, low, pivotIndex - 1); // 递归排序右半部分 quickSort(arr, pivotIndex + 1, high); } } // 分区方法:以最后一个元素为基准 public static int partition(int[] arr, int low, int high) { int pivot = arr[high]; // 选择最后一个元素作为基准 int i = low - 1; // 小于基准的元素的索引 for (int j = low; j < high; j++) { if (arr[j] <= pivot) { i++; swap(arr, i, j); } } swap(arr, i + 1, high); return i + 1; } // 交换两个元素 public static 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 = {10, 7, 8, 9, 1, 5}; System.out.println("排序前:"); printArray(arr); quickSort(arr, 0, arr.length - 1); System.out.println("排序后:"); printArray(arr); } // 打印数组 public static void printArray(int[] arr) { for (int value : arr) { System.out.print(value + " "); } System.out.println(); }} quickSort 方法是递归入口,控制排序范围。partition 方法负责将数组分区,并返回基准元素的最终位置。swap 方法用于交换数组中的两个元素。- 最好情况:每次分区都能平均分割,时间复杂度为 O(n log n)。
- 最坏情况:每次选到最大或最小元素作基准,退化为 O(n²)。
- 平均情况:O(n log n),这也是快速排序被广泛使用的原因。
通过本教程,你已经学会了如何用Java语言实现快速排序算法。无论你是准备面试,还是学习数据结构,掌握快速排序都是非常有价值的。记住,多练习才能真正掌握!
关键词回顾:Java快速排序、快速排序算法、Java排序教程、快速排序实现。
本文由主机测评网于2025-12-10发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025125635.html