編程珠璣 第十一章總結(jié)

這一章主要講了quick-sort和其改進(jìn)的過程欣喧。下面主要總結(jié)一下改進(jìn)的動機(jī)。

  • 動機(jī)1:
    原始的快速排序算法適合于數(shù)字大小隨機(jī)分布的情況。若是一個相同的序列绿聘,那么每次劃分的點都是未劃分點中位置最靠前的點室埋,導(dǎo)致劃分不均勻办绝,時間復(fù)雜度退化到o(n^2)。

  • 解決方案:
    用兩個指針分別向中間靠攏姚淆,基準(zhǔn)點依然選擇序列中最左側(cè)的點孕蝉,左指針當(dāng)遇到比基準(zhǔn)點大或等于的點就stop,同理右指針遇到比基準(zhǔn)點小或等于的點就stop腌逢,這樣導(dǎo)致劃分點靠近數(shù)字的中間降淮,使得時間復(fù)雜度接近于歸并排序的時間復(fù)雜度nlog(n)

void qsort(vector<int>& v, int l, int u) {
    if (l >= u) return;
    int t = v[l]; int i = l; int j = u+1;
    while(true) {
        do {
            i++;
        }while(i <= u && v[i] < t);
        do {
            j--;
        }while(v[j] > t);
        if (i > j) {
            break;
        }
        swap(v[i], v[j]);
    }
    swap(v[j], v[l]);
    qsort(v, l, i - 1);
    qsort(v, i + 1, u);
}
  • 動機(jī)2:
    選取基準(zhǔn)點可以隨機(jī)化

  • 動機(jī)3:
    對小規(guī)模序列快排效果不如插入排序。所以在動機(jī)1代碼中添加了

if(u - l < threshold)
  return;

提前終止排序搏讶,最后再使用插入排序的算法對整體排序佳鳖。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末霍殴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子系吩,更是在濱河造成了極大的恐慌来庭,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件穿挨,死亡現(xiàn)場離奇詭異月弛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)科盛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門尊搬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人土涝,你說我怎么就攤上這事佛寿。” “怎么了但壮?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵冀泻,是天一觀的道長。 經(jīng)常有香客問我蜡饵,道長弹渔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任溯祸,我火速辦了婚禮肢专,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘焦辅。我一直安慰自己博杖,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布筷登。 她就那樣靜靜地躺著剃根,像睡著了一般。 火紅的嫁衣襯著肌膚如雪前方。 梳的紋絲不亂的頭發(fā)上狈醉,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機(jī)與錄音惠险,去河邊找鬼苗傅。 笑死,一個胖子當(dāng)著我的面吹牛班巩,可吹牛的內(nèi)容都是我干的渣慕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼摇庙!你這毒婦竟也來了旱物?” 一聲冷哼從身側(cè)響起遥缕,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卫袒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后单匣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夕凝,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年户秤,在試婚紗的時候發(fā)現(xiàn)自己被綠了码秉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡鸡号,死狀恐怖转砖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鲸伴,我是刑警寧澤府蔗,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站汞窗,受9級特大地震影響姓赤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜仲吏,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一不铆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧裹唆,春花似錦誓斥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舞吭,卻和暖如春泡垃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羡鸥。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工蔑穴, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惧浴。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓存和,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子捐腿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

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

  • 作者:大海里的太陽原文地址:http://www.cnblogs.com/wxisme/ 前言 查找和排序算法是算...
    IT程序獅閱讀 2,500評論 0 63
  • 一纵朋、概述 排序算法概念 在計算機(jī)科學(xué)與數(shù)學(xué)中,一個排序算法是將一組雜亂無章的數(shù)據(jù)按一定的規(guī)律順次排列起來的算法茄袖。排...
    簡書冷雨閱讀 1,033評論 0 0
  • 面試中常用的幾個基本算法整理記錄(二) 無意中看到了面試中的 10 大排序算法總結(jié)原文地址記錄一下操软,方便查找。 查...
    190CM閱讀 1,763評論 1 13
  • 親近大自然藏澳,放飛心情,高淳國際慢城之旅 3月28日耀找,海吉立健組織80余人翔悠,開展“親近大自然,放飛心情”高淳國際慢城...
    無憂無慮61閱讀 438評論 1 2
  • 我和老公計劃過我們要在猴年生一個小猴子野芒, 可是我們沒有想到會一下子來兩個小猴子蓄愁! 我們是小學(xué)的同班同學(xué), 那種青梅...
    右右左左閱讀 445評論 9 12