前提說明
這只是本果初次接觸演算法,而且僅僅是桶排序的簡易模型,前輩們請繞道,感謝!
簡介
實現思想
假如此時要對5個整數進行排序,而且數字的範圍已知的話,就可以使用桶排序啦。我們先假設數字範圍是1000以內吧,此時我們就要準備1001個桶,來存放這5個數字。為什麼是1001個桶呢,因為代表0~1000這1001個數字,每個數字都是有出現的可能的。
1.準備1001個桶,此時每個桶裡都是沒有數字的,值都為0。
2.將5個數字都按照自身的值放入相應的桶裡,此時放入值的桶,數值會增加,放入幾個數字,就增加幾次。
3.挨個查詢每個桶,按照桶裡對應的次數,將桶代表的數字輸出幾次。
4.排序完成了。
演算法實現
定義num陣列(也就是桶)
int num[
1001
],a,b;
//num陣列儲存資料
for(int i=
0;i<=
1001
;i++
)
存入資料
printf
("請輸入需要排序的整數個數(建議輸入少些):");
scanf
("%d"
,&a)
;printf
("請輸入(不可超過1000):");
for(int i=
1;i<=a;i++
)
取出資料
for
(int i=
0;i<=
1001
;i++
)}
執行結果如下
結語真正的桶排序要比這個複雜很多,而且這個簡易排序還有很多缺陷,但是希望大家能從這裡獲得演算法思想,哪怕只是微不足道的一點點。
簡單的排序演算法 桶排序 簡易版
啊哈!演算法 筆記 桶排序顧名思義,像是用有順序的桶子一樣的東西來裝東西排序。那麼來舉個例子 我現在有5個分數3,1,2,4,3 滿分5分 這五個分數需要按從小到大來排個序12334,我們用桶排序該怎麼排呢?如下 includeint main 定義木桶並初始化,因為我們要在012345個分數中排序...
Python實現簡易版「桶排序」演算法
coding utf 8 簡易版桶排序演算法 import random fenshu int input 請輸入考試滿分 renshu int input 請輸入考試人數 sortsre input 倒敘 正序 請選擇 y n while sortsre y and sortsre n print...
排序演算法 桶排序
桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間 n 但桶排序並不...