fork download
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <iterator>
  4.  
  5. int array[20] = {1,4,7,8,10,2,3,6,8,11,1,2,7,8,9,3,4,9,10,13};
  6.  
  7. using namespace std;
  8.  
  9. void MergeSort(int *arr, int start1, int start2, int start3, int start4, int size)
  10. {
  11. std::inplace_merge(arr + start1, arr + start2, arr + start3);
  12. std::inplace_merge(arr + start3, arr + start4, arr + size);
  13. std::inplace_merge(array, array + start3, arr + size);
  14. }
  15.  
  16. int main()
  17. {
  18. MergeSort(array, 0, 5, 10, 15, 20);
  19. std::copy(array, array + 20, ostream_iterator<int>(cout, " "));
  20. }
  21.  
  22.  
Success #stdin #stdout 0s 3416KB
stdin
Standard input is empty
stdout
1 1 2 2 3 3 4 4 6 7 7 8 8 8 9 9 10 10 11 13