下面的文章《Java 中的快速排序》提供了 Java 中快速排序算法的概述。快速排序算法是一种高效的排序算法,与合并排序算法类似。这是用于实时排序目的的常用算法之一。该算法最坏情况时间复杂度为 O(n^2),平均情况时间复杂度为 O(n log n),最好情况时间复杂度为 O(n log n)。
空间复杂度为 O(n log n),其中 n 是输入的大小。排序过程涉及输入的分区、递归迭代以及为每个递归标记关键元素。该算法中的排序类型涉及以迭代方式比较相邻元素。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
快速排序算法可以在 Java 中实现,方法是形成伪代码,并以有效的方式设计和遵循一系列步骤。
QuickSort算法已使用Java编程语言实现如下,输出代码已显示在代码下方。
以下是代码实现:
代码:
/* * Quick Sort algorithm - Divide & Conquer approach */ public class QuickSortAlgorithm { public static void main(String[] args) { int[] array = { 99, 31, 1, 3, 5, 561, 1, 342, 345, 454 }; quickSortAlgo(array, 0, array.length - 1); for (int ar : array) { System.out.print(ar + " "); } } public static int arrayPartition(int[] array, int start, int end) { int pivot = array[end]; int i = (start - 1); for (int ele = start; ele < end; ele++) { if (array[ele] <= pivot) { i++; int swap = array[i]; array[i] = array[ele]; array[ele] = swap; } } // Swapping the elements int swap = array[i + 1]; array[i + 1] = array[end]; array[end] = swap; return i + 1; } public static void quickSortAlgo(int[] arrayTobeSorted, int start, int end) { if (start < end) { int pivot = arrayPartition(arrayTobeSorted, start, end); quickSortAlgo(arrayTobeSorted, start, pivot - 1); quickSortAlgo(arrayTobeSorted, pivot + 1, end); } } }
输出:
与其他排序技术相比,快速排序算法很高效,但不太稳定。当重复元素数量较多时,快速排序算法的效率会下降,这是一个缺点。此快速排序算法优化了空间复杂度。
以上是Java中的快速排序的详细内容。更多信息请关注PHP中文网其他相关文章!