桶排序的簡單實現

  • 2020 年 10 月 11 日
  • 筆記
 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     //簡化的桶排序 
 6     int a[101],i,j,num,t;
 7     for(i=0;i<=100;i++)
 8         a[i]=0;  //初始化為0 
 9     printf("輸入數字個數:"); 
10     scanf("%d",&num);
11 
12     for(i=1;i<=num;i++)
13     {
14         scanf("%d",&t);//將數字賦給對應數組 
15         a[t]++;//數組中的元素代表數的個數 
16     }
17     for(i=0;i<=100;i++)
18         for(j=1;j<=a[i];j++)
19             printf("%d ",i);//出現了幾次就將桶的編號打印幾次 
20 
21     return 0;
22 }

將每一個數據與它的數組號對應,時間複雜度為O(m+n),不失為一種較為快速的排序方法