首页 Java java教程 java如何快速排序函数

java如何快速排序函数

Jan 18, 2024 pm 05:26 PM
java 函数 快速排序

快速排序方法:1、创建一个Java示例文件;2、通过quickSort方法实现快速排序算法;3、选择数组中的一个元素作为主元(pivot),并将数组分为两个子数组,一个包含比主元小的元素,另一个包含比主元大的元素,然后对这两个子数组递归地应用快速排序算法;4、在main方法中对数组进行了排序并输出结果即可。

java如何快速排序函数

本教程操作系统:windows10系统、Dell G3电脑。

以下是在Java中实现快速排序算法的示例代码:

public class QuickSort {
    public static void quickSort(int[] arr, int low, int high) {
        if (arr == null || arr.length == 0) {
            return;
        }
        if (low >= high) {
            return;
        }
        int middle = low + (high - low) / 2;
        int pivot = arr[middle];
        int i = low, j = high;
        while (i <= j) {
            while (arr[i] < pivot) {
                i++;
            }
            while (arr[j] > pivot) {
                j--;
            }
            if (i <= j) {
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
                i++;
                j--;
            }
        }
        if (low < j) {
            quickSort(arr, low, j);
        }
        if (high > i) {
            quickSort(arr, i, high);
        }
    }
    public static void main(String[] args) {
        int[] arr = {5, 2, 8, 3, 9, 1};
        quickSort(arr, 0, arr.length - 1);
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

在上面的示例中,quickSort方法实现了快速排序算法。该算法选择数组中的一个元素作为主元(pivot),并将数组分为两个子数组,一个包含比主元小的元素,另一个包含比主元大的元素。然后对这两个子数组递归地应用快速排序算法。最后在main方法中对数组进行了排序并输出结果。

以上是java如何快速排序函数的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Stock Market GPT

Stock Market GPT

人工智能驱动投资研究,做出更明智的决策

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

CVE-2024-20674|Windows Kerberos安全功能绕过漏洞 CVE-2024-20674|Windows Kerberos安全功能绕过漏洞 Sep 02, 2025 pm 05:18 PM

0x00前言Kerberos由麻省理工学院创建,作为解决这些网络安全问题的解决方案。是一种通过网络提供安全验证处理的客户机/服务器体系结构。通过验证,可保证网络事务的发送者和接收者的身份真实。该服务还可以检验来回传递的数据的有效性(完整性),并在传输过程中对数据进行加密(保密性)。0x01漏洞描述拥有受害网络访问权限的攻击者可以通过建立中间(MITM)攻击或其他本地网络欺骗技术来利用此漏洞,然后向客户端受害者电脑发送恶意Kerberos消息,并假冒是Kerberos身份验证服务器。0x02CVE

wi-fi打电话不工作 wi-fi打电话不工作 Sep 05, 2025 am 04:44 AM

确保Yourdeviceandcarriersupportwi-ficallingingandinableItinsettings - iphone:设置>电话> wi-ficalling; wi-ficalling; android:android> networkings> network&Internet> Mobilenetwork> Mobilenetwork> Advanced> wi-ficalling; vie-ficalling; converseCarrierComparierComparierCompatibilitialcompatibility and CompleteeMpleteeMpleteEmgeTemEngengedDressre

Java中的流API是什么? Java中的流API是什么? Sep 01, 2025 am 08:51 AM

theStreamapiinjavaiSafunctionalToolForProcessingSequences fromSourcesLikeCollectionsorArraysWithOutStoringOrmodifyingTheoriginalData,supportingOperationsSuchasuchasFilter,MAP,MAP,MAP,andReDuceInAdeClarativeWay,andRedCuceInAdeClarativeWay,andReDiperiationSmediaperationsLikeLikeFilterFilterTerandAndAndAndandAndAndandAndAndanDandAndMmapbe

如何构建可扩展的Java巨石 如何构建可扩展的Java巨石 Sep 01, 2025 am 08:42 AM

Usefeature-basedpackagingandtoolslikeArchUnittoenforcemoduleboundaries.2.Decouplemoduleswithdomaineventsandsharedcontractsinsteadofdirectcalls.3.Optimizeperformanceviastatelessservices,caching,databasetuning,andasyncprocessing.4.Structurebuildswithmo

Java中的功能接口是什么? Java中的功能接口是什么? Sep 02, 2025 am 02:07 AM

FunctionInterFaceSinjavaareInterfacesWithExactlyOoneAbstractMethod,ServingasThefoundationForlambDaexpressions andMethodReferences,EnablingFunctionalProgrampramprammingFeatures; sealincludedeDefault,static,static,static,andObjectClassMethodClassMethodSwithOdswithOutBreakingThesingThesingThesingThesingLele-abstrac

记事本如何更改案例(大写/小写) 记事本如何更改案例(大写/小写) Sep 03, 2025 am 09:22 AM

TochangetextcaseinNotepad ,firstselectthetext,thengotoEdit>ConvertCaseToandchoosethedesiredoption:1.UPPERCASE–convertsalltexttouppercase.2.lowercase–convertsalltexttolowercase.3.TitleCase–capitalizesthefirstletterofeachword.4.Sentencecase–capital

如何从Java中的字符串中获取文件扩展名? 如何从Java中的字符串中获取文件扩展名? Sep 16, 2025 am 03:40 AM

togetafilextensionInjava,uselastIndexof()tofindthelastDotAndAndExtractthesubStringFerit,确保theDotiS notatIs notatIndex0orabsent; forcleanercode,useapachecommonsio’sfileNameutils.getExtension()

您如何在Java中的数组中搜索元素? 您如何在Java中的数组中搜索元素? Sep 02, 2025 am 02:03 AM

在Java中搜索数组元素的最佳方法取决于数组是否已排序及性能需求:对于未排序的小数组,使用线性搜索(时间复杂度O(n));对于已排序数组,使用Arrays.binarySearch()(时间复杂度O(logn));若使用对象数组且追求简洁,可转为List后调用contains()或indexOf();在Java8 中偏好函数式风格时,可使用Arrays.stream().anyMatch()实现简洁的一行代码,但性能略低于传统循环,因此选择方法需权衡性能、可读性和数据是否排序的情况。

See all articles