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];
  24. //ここから下を書く
  25. for(i = 0; i < MAX; i++){
  26. b[i] = 0;
  27. }
  28. for(i = 0; i < n; i++){
  29. t = a[i];
  30. b[t] = 1;
  31. }
  32. int x = 0;
  33. for(i = 0; i < MAX; i++){
  34. if(b[i] == 1){
  35. a[x] = i;
  36. x++;
  37. }
  38. }
  39. }
  40.  
  41. int main(void){
  42. int n,i;
  43. int *v;
  44. scanf("%d",&n);
  45. v = (int*)malloc(sizeof(int)*n);
  46. if(v==NULL){
  47. printf("ERROR\n");
  48. return -1;
  49. }
  50. for(i=0;i<n;i++){
  51. scanf("%d",&v[i]);
  52. }
  53. BucketSort(v,n);
  54. printA(v,n);
  55. free(v);
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0.01s 5468KB
stdin
8
21 55 5 13 8 2 34 3
stdout
2 3 5 8 13 21 34 55