Lutece Problem 528-輸出前m大的數(shù)

題目

原題地址
利用快排的思想,首先將前m的數(shù)移至數(shù)組右邊芬萍,然后用內(nèi)置sort函數(shù)對(duì)這m個(gè)數(shù)排序,最后輸出即可搔啊。
為什么不能直接全局sort柬祠,然后輸出m個(gè)數(shù)呢?因?yàn)檫@樣的題目數(shù)組特別大负芋,復(fù)雜度特別高漫蛔。這里我們運(yùn)用快排的思想找到前m大的數(shù)只花費(fèi)了O(n)的時(shí)間,另外排序花了O(m\log m)旧蛾,總復(fù)雜度為O(n+m\log m)莽龟,比O(n\log n)小很多。

#include <iostream>
#include <algorithm>

using namespace std;
#define maxn 1000100
int A[maxn];
int n,m;

//將數(shù)組l到r位置前k大的數(shù)移到l到r位置的右邊
void move_right(int *A, int l, int r, int k){
    if(l>r) return;
    int i=l,j=r;
    int key=A[l];
    while(i!=j){
        if(i<j&&A[j]>=key) --j;
        swap(A[i],A[j]);
        if(i<j&&A[i]<=key) ++i;
        swap(A[i],A[j]);
    }
    int len = r-i+1;
    if(len==k) return;
    else if(len>k) move_right(A, i+1, r, k);
    else move_right(A,l,i-1,k-len);
}

int main()
{
    while(cin>>n>>m){
        for(int i=0; i<n;i++) cin >> A[i];
        //memset(A, 0, sizeof(A));
        move_right(A,0,n-1,m);
        sort(A+n-m,A+n); //將右邊的m個(gè)數(shù)升序排序
        for(int i=n-1;i>=n-m;i--) cout << A[i] << " ";
    }
    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锨天,一起剝皮案震驚了整個(gè)濱河市毯盈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌病袄,老刑警劉巖搂赋,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異益缠,居然都是意外死亡脑奠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門左刽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捺信,“玉大人,你說我怎么就攤上這事∑浚” “怎么了秒咨?”我有些...
    開封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長掌挚。 經(jīng)常有香客問我雨席,道長,這世上最難降的妖魔是什么吠式? 我笑而不...
    開封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任陡厘,我火速辦了婚禮,結(jié)果婚禮上特占,老公的妹妹穿的比我還像新娘糙置。我一直安慰自己,他們只是感情好是目,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開白布谤饭。 她就那樣靜靜地躺著,像睡著了一般懊纳。 火紅的嫁衣襯著肌膚如雪揉抵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天嗤疯,我揣著相機(jī)與錄音冤今,去河邊找鬼。 笑死茂缚,一個(gè)胖子當(dāng)著我的面吹牛戏罢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阱佛,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼帖汞,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼戴而!你這毒婦竟也來了凑术?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤所意,失蹤者是張志新(化名)和其女友劉穎淮逊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扶踊,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泄鹏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秧耗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片备籽。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出车猬,到底是詐尸還是另有隱情霉猛,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布珠闰,位于F島的核電站惜浅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏伏嗜。R本人自食惡果不足惜坛悉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望承绸。 院中可真熱鬧裸影,春花似錦、人聲如沸军熏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽羞迷。三九已至界轩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衔瓮,已是汗流浹背浊猾。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留热鞍,地道東北人葫慎。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像薇宠,于是被迫代替她去往敵國和親偷办。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

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

  • 概述 排序有內(nèi)部排序和外部排序澄港,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序椒涯,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    printf200閱讀 768評(píng)論 0 0
  • 概述 排序有內(nèi)部排序和外部排序回梧,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序废岂,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,183評(píng)論 0 52
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個(gè)記錄插入到已排序好...
    依依玖玥閱讀 1,253評(píng)論 0 2
  • 1. 找出數(shù)組中重復(fù)的數(shù)字 題目:在一個(gè)長度為n的數(shù)組里的所有數(shù)字都在0到n-1的范圍內(nèi)狱意。數(shù)組中某些數(shù)字是重復(fù)的湖苞,...
    BookThief閱讀 1,762評(píng)論 0 2
  • 昨天下午我跟盧思淼一起去萬達(dá)看冰雪奇緣二,那個(gè)電影真的特別好看详囤,電影里講的就是艾莎聽到了一個(gè)聲音在呼喚他财骨,于是...
    細(xì)葉冬青閱讀 158評(píng)論 0 0