快速排序

快速排序?qū)⒌谝粋€(gè)數(shù)值作為基準(zhǔn)值,從右往左找到比基準(zhǔn)值小的數(shù)值與從左往右的大于基準(zhǔn)值的數(shù)值交換(必須先從右往左再?gòu)淖笸遥┊?dāng)兩邊重疊的時(shí)候,那么當(dāng)前索引位置就是基準(zhǔn)值的中間位,此時(shí)左邊的數(shù)值全部小于基準(zhǔn)值,右邊的數(shù)值全部大于基準(zhǔn)值,對(duì)兩邊進(jìn)行二分遞歸排序。

    public static void quicksort(int[] nums,int first,int last){
        if(first>=last)
        {
            return;
        }
        int i=first;
        int j=last;
        int flag=nums[i];
        while(i != j){
            for(;i < j && nums[j] >= flag; j--){}
            for(;i < j && nums[i] <= flag; i++){}
            int temp=nums[i];
            nums[i]=nums[j];
            nums[j]=temp;
        }
        
        nums[first]=nums[i];
        nums[i]=flag;
        quicksort(nums,first,i-1);
        quicksort(nums,i+1,last);
        
        for(int n:nums)
        {
            System.out.print(n+",");
        }
        System.out.println("");
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 目標(biāo):將一個(gè)數(shù)組按照由低到高(或者由高到低)的順序排序。 快速排序是歷史上最著名的算法之一。1959年由 Tony...
    唐先僧閱讀 5,580評(píng)論 1 3
  • 高快省的排序算法 有沒(méi)有既不浪費(fèi)空間又可以快一點(diǎn)的排序算法呢?那就是“快速排序”啦!光聽(tīng)這個(gè)名字是不是就覺(jué)得很高端...
    博弈史密斯閱讀 459評(píng)論 0 0
  • 簡(jiǎn)介 快速排序,看這名字就知道這是一種很快的排序方法,實(shí)際上也是如此??焖倥判?qū)儆诜种畏ǖ囊环N,就是說(shuō)通過(guò)把數(shù)據(jù)分...
    這是朕的江山閱讀 21,837評(píng)論 7 10
  • C語(yǔ)言是面向過(guò)程的,而C++是面向?qū)ο蟮?C和C++的區(qū)別: C是一個(gè)結(jié)構(gòu)化語(yǔ)言,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)。C程...
    小辰帶你看世界閱讀 873評(píng)論 1 3
  • 概述 快速排序是面試中的常見(jiàn)題,每次簡(jiǎn)述一遍快速排序的原理便覺(jué)得仿佛已經(jīng)掌握了它。不是挺簡(jiǎn)單的嗎?然而實(shí)際實(shí)現(xiàn)的時(shí)...
    芥丶未央閱讀 1,667評(píng)論 0 0

友情鏈接更多精彩內(nèi)容