Advertisement
Guest User

Untitled

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