快速排序 Java 三种实现

8,055次阅读
没有评论

共计 1089 个字符,预计需要花费 3 分钟才能阅读完成。

快速排序(Quick Sort)是一种高效的排序算法,它基于分治策略,将一个大问题分解成多个小问题,然后递归解决这些小问题。本文将介绍快速排序算法的原理,并提供三种不同的 Java 实现方式,以帮助你更好地理解这个算法。

快速排序原理

快速排序的核心思想是选取一个基准元素,然后将数组中小于基准的元素移到基准的左边,大于基准的元素移到基准的右边。接着,对左右两个子数组分别递归地应用相同的算法,直到整个数组有序。

下面是快速排序的基本步骤:

  1. 选择一个基准元素(通常选择第一个或最后一个元素)。
  2. 将数组分成两个子数组:小于基准的元素和大于基准的元素。
  3. 递归地对子数组进行排序。
  4. 合并子数组和基准元素,得到最终排序后的数组。

第一种实现:使用递归

public class QuickSort {

public static void quickSort(int[] arr, int low, int high) {if (low pivot) {right--;} if (left

第二种实现:使用 Stack

import java.util.Arrays;

import java.util.Stack; public class QuickSortUsingStack {public static void quickSort(int[] arr, int low, int high) {Stack stack = new Stack(); stack.push(low); stack.push(high); while (!stack.isEmpty()) {high = stack.pop(); low = stack.pop(); int pivotIndex = partition(arr, low, high); if (pivotIndex - 1> low) {stack.push(low); stack.push(pivotIndex - 1); } if (pivotIndex + 1

第三种实现:使用 Lambdas

import java.util.Arrays;

import java.util.function.Predicate; public class QuickSortUsingLambdas {public static void quickSort(int[] arr, int low, int high) {if (low

总结

快速排序是一种高效的排序算法,它的性能在平均情况下非常好。本文提供了三种不同的 Java 实现方式,包括递归、使用栈和使用 Lambda 表达式。你可以根据自己的需求选择合适的实现方式。

如果你想了解更多有关 Java 编程的知识,请访问 编程狮官网。祝你编程愉快!

原文地址: 快速排序 Java 三种实现

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-20发表,共计1089字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)