排序演算法(一)桶排法

2021-09-08 18:36:39 字數 618 閱讀 7146

--**啊哈磊【坐在馬桶上看演算法】演算法1:最快最簡單的排序——桶排序

問題:

隨機輸入五個0-10之間的數,對輸入的數由小到大排列

方法:

桶排法:用乙個大小為11的一維陣列,陣列下標0~10分別表示分數0~10,不同的分數所對應單元格則儲存得此分數的人數

**:

1 #include 2

3int main(void)4

1415

for (int i = 0; i<=10;i++)//

依次判斷a[0]~a[10]

16for (int j = 0; j //

出現了幾次就列印幾次

17 printf("%d"

, i);

1819 getchar();//

用來暫停程式,以便檢視程式輸出的內容

20return0;

2122 }

如果要實現從大到小排序,只需要將for(int i=0;i<=10;i++)改為for(int i=10;i>=0;i--)即可。

500桶酒中有一桶毒酒

有乙個數學題目是這樣的 500桶酒中有一桶毒酒,毒酒喝後24小時準時身亡,酒會48小時後召開,國王想用囚犯實驗出毒酒最少需要多少個囚犯?答案 1 23人,每人喝22至23種酒,24小時,毒死一人,能確定毒酒在23種以內,剩下的22人,每人喝一種,再過24小時就能找出毒酒。2 22人也行,一人喝22種...

最簡單快速的排序法之桶排法

前提 0 100內的隨機數n個,實現從小到大 從大到小 排序。實現 新建乙個長度為101的陣列,value初始化為0。陣列每個key代表0 100中的數字,value值表示0 100中任意乙個陣列的出現次數。通俗點說就是每個key代表乙個桶,我們有101個桶,每個桶上表上數字0 100。把要排序的數...

演算法題之計算哪一桶是紅酒

莫斯科的一位酒商現有六桶酒,容量分別為30公升 32公升 36公升 38公升 40公升 62公升。白酒五桶,紅酒一桶。他的酒都是整桶 上午賣出了兩桶白酒,下午賣出的白酒是上午的兩倍。請問 紅酒是哪一桶?由於總共有六桶酒,其中白酒五桶,紅酒一桶 那麼也就是說,下午賣出的n桶白酒的公升數是早上賣出的兩桶...