第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

java排序(快速排序)

標(biāo)簽:
Java

快速排序

思路

  • 在数组中寻一中间数,将比中间数小的放在左边,将比中间数大的放在右边
    从左边开始找,找到比中间数大的,记住,从右边开始找,找到比中间数小的,然后交换两边
    然后在左边再寻一中间数,同坐上面的事,右边也一样,然后循环

实现

数组:[2,6,3,6,5,9,1]
输出:[1 2 3 5 6 6 9 ]

private static void paixu(int[] arrs, int h, int e) {        int head =h;        int end = e;        int x=(h+e)/2;//中间值的位置

        while (h <= e){//两个指针还没有遇到

            while (arrs[x]>arrs[h]){//从左边开始找,找到比中间值大的数
                h++;
            }            while (arrs[x]< arrs[e]){//从右边开始查找,找到比中间值小的
                e--;
            }            //交换值
            int m;
            m = arrs[h];
            arrs[h] = arrs[e];
            arrs[e] = m;        //2,6,3,6,5,9,1
            h++;                //2,1,3,6,5,9,6
            e--;                //2,1,3,5,6,9,6

        }        //递归查询左右两边
        if (head < e){
        paixu(arrs,head,e);}        if (end > h){
        paixu(arrs,h,end);}
    }

为什么会有h++,e--呢
跟一下代码
输入数组[2,6,3,6,5,9,1]
第一次运行
中间位置是3,值是6
左边是0,右边是6

往下执行

h=1,e=6
数组变成[2,1,3,6,5,9,6]

执行加减操作 h=2,e=5;然后开启第二轮的执行

假如不进行加减操作,
继续执行的话,左边继续判断,当查询到6的时候停止,
右边查询,查询到6的时候停止,然后交换,6和6交换,然后再次开启循环,就会死循环,

当执行加减操作之后,再次判断的时候,就会从交换数据之后的索引开始判断,就不会再次判断了,



作者:z七夜
链接:https://www.jianshu.com/p/28efb714fad9

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消