1. 程式人生 > >常見演算法之桶排序

常見演算法之桶排序

桶排序應該是最簡單的一種排序方法 同時也因為簡單而有很多限制和缺點
缺點就是非常浪費空間 如要需要排序的數字很大 那麼要申請一個很大的空間

這裡舉一個最簡單的例子去介紹桶排序
如果一位老師要給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