Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int largest(int a[], int n)
  4. {
  5. int large = a[0], i;
  6. for (i = 1; i < n; i++)
  7. {
  8. if (large < a[i])
  9. large = a[i];
  10. }
  11. return large;
  12. }
  13.  
  14. void RadixSort(int a[], int n)
  15. {
  16. int bucket[10][10], bucket_count[10];
  17. int i, j, k, remainder, NOP = 0, divisor = 1, large, pass;
  18.  
  19. large = largest(a, n);
  20. printf("Najveci element %d\n", large);
  21. while (large > 0)
  22. {
  23. NOP++;
  24. large /= 10;
  25. }
  26.  
  27. for (pass = 0; pass < NOP; pass++)
  28. {
  29. for (i = 0; i < 10; i++){
  30. bucket_count[i] = 0;
  31. }
  32.  
  33. for (i = 0; i < n; i++) {
  34. remainder = (a[i] / divisor) % 10;
  35. bucket[remainder][bucket_count[remainder]] = a[i];
  36. bucket_count[remainder] += 1;
  37. }
  38.  
  39. i = 0;
  40. for (k = 0; k < 10; k++) {
  41. for (j = 0; j < bucket_count[k]; j++)
  42. {
  43. a[i] = bucket[k][j];
  44. i++;
  45. }
  46. }
  47. divisor *= 10;
  48.  
  49. for (i = 0; i < n; i++)
  50. printf("%d  ", a[i]);
  51. printf("\n");
  52. }
  53. }
  54.  
  55.  
  56. int main()
  57. {
  58. int i, n, a[10];
  59. printf("Unesite broj elemenata: ");
  60. scanf_s("%d", &n);
  61. printf("Unesite elemente: ");
  62. for (i = 0; i < n; i++) {
  63. scanf_s("%d", &a[i]);
  64. }
  65. RadixSort(a, n);
  66. printf("Sortirani elementi su:  ");
  67. for (i = 0; i < n; i++)
  68. printf("%d ", a[i]);
  69. printf("\n");
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement