Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int exch = 0, comp = 0;
  5. #define D 1000
  6. #define RAND(D) rand()%D
  7.  
  8. void Bucket_Sort(int array[], int n);
  9. int best_array(int a[], int n);
  10. int avg_array(int a[], int n);
  11. int worst_array(int a[], int n);
  12. int printf_array(int a[], int n);
  13.  
  14. int main() {
  15. int left = 0;
  16. printf("Enter n: \n");
  17. int n, var, k;
  18. scanf_s("%d", &n);
  19. link:
  20. printf("Choose the variant:\n1. Best\n2. Avarage\n3. Worst\n");
  21. scanf_s("%d", &var);
  22. int *A = new int[n];
  23. if (var == 1) // найкращий випадок - масив відсортований;
  24. {
  25. best_array(A, n);
  26. printf_array(A, n);
  27. }
  28. else if (var == 2) // випадковий набір;
  29. {
  30. avg_array(A, n);
  31. printf_array(A, n);
  32. }
  33. else if (var == 3) // найгірший випадок - масив відсортований в зворотньому порядку;
  34. {
  35. worst_array(A, n);
  36. printf_array(A, n);
  37. }
  38. else
  39. {
  40. printf("Error, try again\n");
  41. goto link;
  42. }
  43. Bucket_Sort(A,n);
  44. printf_array(A, n);
  45. printf("\nNumbers of comparisons %d\n", comp);
  46. printf("Numbers of exchanges %d\n\n", exch);
  47. system("pause");
  48. }
  49.  
  50. int best_array(int a[], int n) {
  51. int i = 0;
  52. for (int i = 0; i < n; i++) a[i] = i;
  53. return i;
  54. }
  55.  
  56. int avg_array(int a[], int n) {
  57. int i, j, k = 10;
  58. for (j = 1; j <= k; j++) {
  59. srand(j); // srand(13);
  60. for (i = 0; i < n; i++) a[i] = RAND(D);
  61. }
  62. return j;
  63. }
  64.  
  65. int worst_array(int a[], int n) {
  66. int i = 0;
  67. for (int i = 0; i < n; i++) a[i] = n - 1 - i;
  68. return i;
  69. }
  70.  
  71. int printf_array(int a[], int n) {
  72. int i;
  73. for (i = 0; i < n; i++) printf("%d\t", a[i]);
  74. printf("\n\n");
  75. return i;
  76. }
  77.  
  78. void Bucket_Sort(int array[], int n)
  79. {
  80. int i, j;
  81. int* count = new int[n];
  82. for (i = 0; i < n; i++)
  83. {
  84. exch++;
  85. count[i] = 0;
  86. }
  87. for (i = 0; i < n; i++)
  88. {
  89. exch++;
  90. (count[array[i]])++;
  91. }
  92. for (i = 0, j = 0; i < n; i++)
  93. {
  94. for (; count[i] > 0; (count[i])--)
  95. {
  96. exch++;
  97. array[j++] = i;
  98. }
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement