fork download
  1. // BucketSort
  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]={0};
  24.  
  25. int index = 0;
  26.  
  27. for(i = 0; i < n; i++){
  28. b[a[i]]++;
  29. }
  30.  
  31. for(i = 0; i < MAX; i++){
  32. for(t = 0; t < b[i]; t++){
  33. a[index++] = 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. }
  55.  
Success #stdin #stdout 0.01s 5528KB
stdin
6
12 4 65 8 23 21
stdout
4 8 12 21 23 65