常見演算法之桶排序
阿新 • • 發佈:2019-01-06
桶排序應該是最簡單的一種排序方法 同時也因為簡單而有很多限制和缺點
缺點就是非常浪費空間 如要需要排序的數字很大 那麼要申請一個很大的空間
這裡舉一個最簡單的例子去介紹桶排序
如果一位老師要給5位學生的分數排序 分數為0-10分
桶排序的方法就是建立一個大小為11的陣列,a[0]-a[10]都初始化為0。
當有一個分數是1 那麼a[1] = 1; 如果有兩個分數都為1,那a[1] = 2。
所以依據這個思想 我們就可以簡單的寫個程式驗證
#include <stdio.h>
int main(void)
{
int a[11],i,j,t;
for (i = 0 ; i <= 10; i++)
{
a[i] = 0;
}
for (i = 1; i <= 5; i++)
{
scanf("%d",&t);
a[t]++;
}
for (i = 0; i <= 10; i++)
for (j = 1; j <= a[i]; j++)
{
printf("%d",i);
}
return 0;
}
如果輸入的是 5 1 3 8 2
那麼輸出的就是 12358