Advertisement
Guest User

Untitled

a guest
Apr 1st, 2020
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. void mergesort(vector<int>& v, int b, int e) {
  8. int m = (e + b) / 2;
  9. if (b < e) {
  10. mergesort(v, b, m);
  11. mergesort(v, m + 1, e);
  12. }
  13. else {
  14. return;
  15. }
  16. vector<int> temp;
  17. int i = b, j = m + 1;
  18. while (i <= m and j <= e) {
  19. if (v[i] > v[j]) {
  20. temp.push_back(v[j]);
  21. j++;
  22. }
  23. else {
  24. temp.push_back(v[i]);
  25. i++;
  26. }
  27. }
  28. if (i <= m) {
  29. while (i <= m) {
  30. temp.push_back(v[i]);
  31. i++;
  32. }
  33. }
  34. else if (j <= e) {
  35. while (j <= e) {
  36. temp.push_back(v[j]);
  37. j++;
  38. }
  39. }
  40. for (int k = b; k <= e; k++) {
  41. v[k] = temp[k - b];
  42. }
  43.  
  44. }
  45.  
  46.  
  47.  
  48.  
  49.  
  50. int main() {
  51.  
  52. vector <int> v;
  53. int n;
  54. cin >> n;
  55. for (int i = 0; i < n; i++) {
  56. int val;
  57. cin >> val;
  58. v.push_back(val);
  59. }
  60.  
  61. mergesort(v, 0, v.size() - 1);
  62.  
  63. for (int i = 0; i < v.size(); i++) {
  64. cout << v[i] << " ";
  65. }
  66.  
  67. return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement