重拾算法Day01-最快最簡(jiǎn)單的排序-桶排序

寫(xiě)在前面

背景

小哼的班上只有5個(gè)同學(xué)照激,這5個(gè)同學(xué)分別考了5分鲫惶、3分、5分实抡、2分欠母、8分(最高分10分),接下來(lái)將分?jǐn)?shù)按照從大到小排序吆寨,排序后的結(jié)果是:8 5 5 3 2 赏淌,寫(xiě)一段程序,讓計(jì)算機(jī)讀入5個(gè)數(shù)然后將這5個(gè)數(shù)從大到小輸出啄清。

直接上代碼

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int a[11];
    //設(shè)置a[t]的默認(rèn)值為0
    for (int i=0; i<11; i++) {
        a[i] = 0;
    }
    
    int t;
    for (int i=0; i<5; i++) {
        scanf("%d", &t);
        a[t]++;  //設(shè)置考t分的人數(shù)
    }
    
    for (int i=10; i>=0; i--) {
        for (int j=0; j<a[i]; j++) {
            printf("%d", i);
        }
    }
    printf("\n");
    
    return 0;
}

解讀

最高分是10分六水,所以創(chuàng)建了11個(gè)元素的數(shù)組,其中a[t]=n; 表示考t分的有n人辣卒。
默認(rèn)情況下a[t]=0;
根據(jù)輸入的t值掷贾,使a[t]自增1;
然后通過(guò)對(duì)a[]的倒序遍歷,如果a[t]為0荣茫,則不輸出; 如果a[t]=n>0,則輸入n次t;

變形

輸入n個(gè)0~1000之間的整數(shù)想帅,將它們從大到小排序。

#include <stdio.h>

int main(int argc, const char * argv[]) {
    // insert code here...
    
    int n;
    scanf("%d", &n);    //n表示要排序的數(shù)字個(gè)數(shù)
    
    int a[1001];
    //(1)
    for (int i=0; i<1001; i++) {
        a[i] = 0;
    }
    int t;
  //(2)
    for (int i=0; i<n; i++) {
        scanf("%d", &t);
        a[t] ++;
    }
      //(3)
    for (int i=1000; i>=0; i--) {
        for (int j=0; j<a[i]; j++) {
            printf("%d ", i);
        }
    }
    
    printf("\n");
    
    return 0;
}

時(shí)間復(fù)雜度

代碼中標(biāo)記(1)處啡莉,一共循環(huán)了M次港准,M為桶的個(gè)數(shù)。標(biāo)記(2)處一共循環(huán)了N次咧欣,N為待排序數(shù)的個(gè)數(shù)浅缸,標(biāo)記(3)處共循環(huán)了(M+N)次,所以總的時(shí)間復(fù)雜度是O(M+N+M+N)=O(2*(M+N))魄咕,忽略常數(shù)衩椒,最終桶排序的時(shí)間復(fù)雜度是O(M+N).

總結(jié)與反思

這是一個(gè)非常快的排序算法,但它不是真正的桶排序算法毛萌,真正的桶排序算法之后會(huì)講梢什。這篇講的是簡(jiǎn)化版的桶排序算法,其本質(zhì)還不能算是一個(gè)真正意義上的排序算法朝聋∥宋纾看一個(gè)例子: 5個(gè)人的名字和分?jǐn)?shù):huhu 5分,哈哈 3分冀痕, xixi 5分荔睹,hengheng 5分, river 8分言蛇。請(qǐng)按照分?jǐn)?shù)從高到低僻他,輸入他們的名字,如果用上面的簡(jiǎn)化版桶排序算法僅僅是把分?jǐn)?shù)進(jìn)行了排序腊尚,最終輸入的僅僅是分?jǐn)?shù)吨拗,但沒(méi)有對(duì)名字進(jìn)行排序。
期待下一節(jié):冒泡排序婿斥。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末劝篷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子民宿,更是在濱河造成了極大的恐慌娇妓,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件活鹰,死亡現(xiàn)場(chǎng)離奇詭異哈恰,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)志群,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)着绷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人锌云,你說(shuō)我怎么就攤上這事荠医。” “怎么了宾抓?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵子漩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我石洗,道長(zhǎng),這世上最難降的妖魔是什么紧显? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任讲衫,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涉兽。我一直安慰自己招驴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布枷畏。 她就那樣靜靜地躺著别厘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拥诡。 梳的紋絲不亂的頭發(fā)上触趴,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音渴肉,去河邊找鬼冗懦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛仇祭,可吹牛的內(nèi)容都是我干的披蕉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乌奇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼没讲!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起礁苗,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤食零,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后寂屏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體贰谣,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年迁霎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吱抚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡考廉,死狀恐怖秘豹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情昌粤,我是刑警寧澤既绕,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站涮坐,受9級(jí)特大地震影響凄贩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜袱讹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一疲扎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦椒丧、人聲如沸壹甥。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)句柠。三九已至,卻和暖如春棒假,著一層夾襖步出監(jiān)牢的瞬間溯职,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工淆衷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缸榄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓祝拯,卻偏偏與公主長(zhǎng)得像甚带,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子佳头,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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

  • 概述:排序有內(nèi)部排序和外部排序鹰贵,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大康嘉,一次不能容納全部...
    每天刷兩次牙閱讀 3,732評(píng)論 0 15
  • 概述 排序有內(nèi)部排序和外部排序碉输,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大亭珍,一次不能容納全部...
    蟻前閱讀 5,186評(píng)論 0 52
  • 在我們生活的這個(gè)世界中到處都是被排序過(guò)的敷钾。站隊(duì)的時(shí)候會(huì)按照身高排序,考試的名次需要按照分?jǐn)?shù)排序肄梨,網(wǎng)上購(gòu)物的時(shí)候會(huì)按...
    極客學(xué)院Wiki閱讀 947評(píng)論 2 12
  • 1.“靈魂取決于“人生態(tài)度”阻荒,它有可能得到磨練,也有可能產(chǎn)生污點(diǎn)众羡。由于人生的度過(guò)方式不同侨赡,我們的精神既可能變得高尚...
    五只羊閱讀 394評(píng)論 0 0
  • 我有個(gè)朋友和他女朋友分手了,電話里用他一貫低沉的語(yǔ)氣告訴我:“她是一個(gè)好姑娘粱侣⊙蛞迹” 小團(tuán)就是他的女朋友,我的摯友齐婴。 ...
    月妝小姐姐閱讀 380評(píng)論 3 2