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