Advertisement
VinnRonn

MergeSort

Jul 23rd, 2022
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. template<typename Container>
  2. void UserSort(Container& con) {
  3. for (int i = 0; i < con.size(); ++i) {
  4. for (int j = 0; j < con.size() - 1 - i; ++j) {
  5. if (con[j + 1] < con[j]) {
  6. swap(con[j], con[j +1]);
  7. }
  8. }
  9. }
  10. }
  11.  
  12. template<typename RandomIt>
  13. void MergeSort(RandomIt& first, RandomIt& last) {
  14. auto base_v = MakeVector(first, last);
  15.  
  16. RandomIt middle = first + (last - first) / 2;
  17. auto lhs = MakeVector(first, middle);
  18. auto rhs = MakeVector(middle, last);
  19.  
  20. UserSort(lhs);
  21. UserSort(rhs);
  22.  
  23. decltype(lhs) b;
  24. merge(lhs.begin(), lhs.end(), rhs.begin(), rhs.end(), back_inserter(b));
  25.  
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement