Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. #include <iostream>
  2. void mergesort(int *a, int n);
  3. void osszefesules(int *a, int n);
  4. void kiir(int a[], int n);
  5. using namespace std;
  6. int main() {
  7. int *a, n,i;
  8. cin >> n;
  9. a = (int*)malloc(n*sizeof(int));
  10. for (i = 0; i < n; ++i) {
  11. a[i] = rand() % 100;
  12. }
  13.  
  14. kiir(a, n);
  15. mergesort(a, n);
  16. kiir(a, n);
  17. system("pause");
  18. return 0;
  19.  
  20. }
  21. void mergesort(int *a, int n) {
  22. if (n > 1) {
  23. mergesort(a, n / 2 - 1);//elso fele n/2
  24. mergesort(a + n / 2, n - n / 2);
  25. osszefesules(a, n);
  26. }
  27. }
  28. void osszefesules(int *a, int n) {
  29. int i, j, k;
  30. int *b = a + n / 2;
  31. int m = n - n / 2;
  32. int *c = (int*)malloc(n*sizeof(int));
  33. n = n / 2;
  34. i = j = k = 0;
  35.  
  36. while (i < n && j < m) {
  37. if (a[i] < b[j]) { c[k++] = a[i++]; }
  38. else { c[k++] = b[j++]; }
  39. }
  40.  
  41. while (j < m) {
  42. c[k++] = b[j++];
  43. }
  44.  
  45. while (i < n) {
  46. c[k++] = a[i++];
  47.  
  48.  
  49. }
  50. for (i = 0; i < n + m; ++i) {
  51. a[i] = c[i];
  52. }
  53. }
  54. void kiir(int a[], int n) {
  55. for (int i = 0; i < n; ++i) {
  56. cout << a[i] << " ";
  57. }
  58. cout << endl;
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement