java快速排序

快速排序

速度快区转,占內(nèi)存(迭代)

  • 先從后往前找最小的函似,再從前往后找最大的阴绢;
  • 在數(shù)據(jù)中選取一個(gè)元素,將所有比其大的放在左邊艰躺,將所有比其小的放在右邊呻袭;
  • 然后再將左邊的和右邊的分別選出一個(gè)元素,進(jìn)行上述操作直到排序結(jié)束腺兴。

具體實(shí)施&思想

1.對(duì)所有待排序元素左电,設(shè)定i為最左邊下標(biāo),j為最右邊下標(biāo)页响,k為選取的元素(arr[i]篓足,即將arr[i]“挖掉”,i為“坑”)闰蚕。
2.從j開始栈拖,j--,找出<=k的没陡,令arr[i] = arr[j],相當(dāng)于將j元素“挖掉”涩哟,填到i,此時(shí)j為“坑”盼玄;接著從i開始贴彼,i++,找>=k的埃儿,令arr[j] = arr[i]锻弓,即將i元素“挖掉”,填到j(luò)蝌箍,此時(shí)i為“坑”青灼。
3.重復(fù)上面步驟直到i==j,這時(shí)k左邊的元素(m)都比k小妓盲,k右邊的元素(n)都比k大
4.令arr[i] = k杂拨,將arr[i]的“坑”填住。
5.將m悯衬,n分為兩個(gè)數(shù)據(jù)集弹沽,再進(jìn)行1~3操作,直到m筋粗,n中只有一個(gè)元素策橘,排序結(jié)束。

void quick(int i,int j,int[] arr){
    if (i < j) {
    int l = i;//前
    int r = j;//后
    int k = arr[i];//把初始的元素提取出來娜亿,產(chǎn)生了一個(gè)“坑”
    //這里的j>i是為了控制循環(huán)結(jié)束------只要j==i丽已,一輪循環(huán)就會(huì)結(jié)束
    while (j > i) {
        //j > l保證j不會(huì)向右越界,arr[j] > k是為了從后向前尋找比k小的元素
        while (arr[j] >= k&& j > i) {
            j--;
        }
        //一旦有比k小的元素买决,就將他存到k上次挖出的“坑”里面沛婴,此時(shí)在arr[j]里面生成一個(gè)“坑”
        arr[i] = arr[j];
        //i < r保證i不會(huì)向左越界吼畏,arr[i] < k是為了從前向后尋找比k大的元素
        while (arr[i] < k&&j > i) {
            i++;
        }
        //用剛剛發(fā)現(xiàn)的比k大的元素填到之前在k的后面挖出的“坑”里面,此時(shí)在k的前面arr[i]處挖出一個(gè)“坑”
        arr[j] = arr[i];
    }
    //將剛才的“坑”填上嘁灯,至此泻蚊,一輪循環(huán)結(jié)束,以k分隔了所有大于/小于他的元素
    arr[i] = k;
    //進(jìn)行下一輪遍歷
    quick(l,i -1,arr);
    quick(i + 1, r, arr);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末丑婿,一起剝皮案震驚了整個(gè)濱河市性雄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌羹奉,老刑警劉巖秒旋,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異尘奏,居然都是意外死亡滩褥,警方通過查閱死者的電腦和手機(jī)病蛉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門炫加,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人铺然,你說我怎么就攤上這事俗孝。” “怎么了魄健?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵赋铝,是天一觀的道長。 經(jīng)常有香客問我沽瘦,道長革骨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任析恋,我火速辦了婚禮良哲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘助隧。我一直安慰自己筑凫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布并村。 她就那樣靜靜地躺著巍实,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哩牍。 梳的紋絲不亂的頭發(fā)上棚潦,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音膝昆,去河邊找鬼瓦盛。 笑死洗显,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的原环。 我是一名探鬼主播挠唆,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嘱吗!你這毒婦竟也來了玄组?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤谒麦,失蹤者是張志新(化名)和其女友劉穎俄讹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绕德,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡患膛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了耻蛇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踪蹬。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖臣咖,靈堂內(nèi)的尸體忽然破棺而出跃捣,到底是詐尸還是另有隱情,我是刑警寧澤夺蛇,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布疚漆,位于F島的核電站,受9級(jí)特大地震影響刁赦,放射性物質(zhì)發(fā)生泄漏娶聘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一甚脉、第九天 我趴在偏房一處隱蔽的房頂上張望丸升。 院中可真熱鬧,春花似錦宦焦、人聲如沸发钝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酝豪。三九已至,卻和暖如春精堕,著一層夾襖步出監(jiān)牢的瞬間孵淘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工歹篓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瘫证,地道東北人揉阎。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像背捌,于是被迫代替她去往敵國和親毙籽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)毡庆。 張土汪:刷leetcod...
    土汪閱讀 12,743評(píng)論 0 33
  • 一. 冒泡排序(BubbleSort) 基本思想:兩個(gè)數(shù)比較大小坑赡,較大的數(shù)下沉,較小的數(shù)冒起來么抗。 過程: 比較相...
    夢工廠閱讀 95,728評(píng)論 42 934
  • 總結(jié)一下常見的排序算法毅否。 排序分內(nèi)排序和外排序。內(nèi)排序:指在排序期間數(shù)據(jù)對(duì)象全部存放在內(nèi)存的排序蝇刀。外排序:指在排序...
    jiangliang閱讀 1,340評(píng)論 0 1
  • 過了今晚十二點(diǎn),八月迎面而來顽分⌒煨恚回想七月的三十一天施蜜,時(shí)間飛逝而過卒蘸,感覺自己許多事情還沒有做完,這個(gè)月已經(jīng)要過去了翻默。 ...
    影子倒了閱讀 230評(píng)論 2 6
  • 我現(xiàn)在覺得修械,所謂那種“天之驕子”的感覺趾牧,可能只屬于本科畢業(yè)生所獨(dú)有。 讀研之后肯污,所有的驕傲和躊躇滿志翘单,都不知不覺地...
    高俗閱讀 1,237評(píng)論 4 9