fork download
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. void printA(int a[], int n){
  6. int i;
  7. for(i=0;i<n;i++){
  8. printf("%d ",a[i]);
  9. }
  10. printf("\n");
  11. }
  12.  
  13. void swap(int* a, int* b){
  14. int tmp;
  15. tmp = *a;
  16. *a = *b;
  17. *b = tmp;
  18. }
  19.  
  20. #define MAX 1000000
  21. void BucketSort(int a[], int n){
  22. int i,t;
  23. int b[MAX];
  24. int max=a[0];
  25.  
  26. for(int i=0; i<n; i++)
  27. {
  28. if(a[i]>max)
  29. max=a[i];
  30. }
  31.  
  32. for(int i=0; i<n; i++)
  33. b[a[i]]++;
  34.  
  35. int j=0;
  36. for(int i=0; i<=max; i++)
  37. {
  38. while(b[i]>0)
  39. {
  40. a[j]=i;
  41. j++;
  42. b[i]--;
  43. }
  44. }
  45. }
  46.  
  47. int main(void){
  48. int n,i;
  49. int *v;
  50. scanf("%d",&n);
  51. v = (int*)malloc(sizeof(int)*n);
  52. if(v==NULL){
  53. printf("ERROR\n");
  54. return -1;
  55. }
  56. for(i=0;i<n;i++){
  57. scanf("%d",&v[i]);
  58. }
  59. BucketSort(v,n);
  60. printA(v,n);
  61. free(v);
  62. return 0;
  63. }
Success #stdin #stdout 0.01s 5328KB
stdin
8
21 55 5 13 8 2 34 3
stdout
2 3 5 8 13 21 34 55