Advertisement
Guest User

Untitled

a guest
Jun 17th, 2020
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. #include <vector>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5.  
  6. vector<int> Merge(vector<int>& a, vector<int>& b) {
  7. unsigned long long ap = 0, bp = 0;
  8. vector<int> c;
  9. while (ap<a.size() and bp < b.size())
  10. {
  11. if (a[ap] < b[bp]) {
  12. c.push_back(a[ap]);
  13. ap += 1;
  14. }
  15. else{
  16. c.push_back(b[bp]);
  17. bp += 1;
  18. }
  19. }
  20. if (bp == b.size()) {
  21. for(unsigned long long i=ap;i<a.size();i++) c.push_back(a[i]);
  22. }
  23. if (ap == a.size()) for (unsigned long long i = bp; i < b.size(); i++) c.push_back(b[i]);
  24. return c;
  25. }
  26.  
  27. void MergeSort(vector<int>& a) {
  28. if (a.size() > 1) {
  29. vector<int> b, c;
  30. for (unsigned int i = 0; i < a.size() / 2; i += 1) b.push_back(a[i]);
  31. for (unsigned int i = a.size() / 2; i < a.size(); i++) c.push_back(a[i]);
  32. MergeSort(b);
  33. MergeSort(c);
  34. a =Merge(b, c);
  35. }
  36. }
  37.  
  38.  
  39. int main()
  40. {
  41. vector<int> a;
  42. for (int i = 0; i < 5; i++) {
  43. a.push_back(5-i);
  44. }
  45. for (int i = 0; i < 5; i++) cout << a[i] << ' ';
  46. MergeSort(a);
  47. cout << '\n';
  48. for (int i = 0; i < 5; i++) cout << a[i] << ' ';
  49. int j;
  50. cin >> j;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement