fork download
  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4.  
  5. void insertionSort(std::vector<int>& vec){
  6. for(auto it = vec.begin(); it != vec.end(); it++)
  7. {
  8. // Search
  9. auto const insertion_point = std::upper_bound(vec.begin(), it, *it);
  10.  
  11. //insert
  12. std::rotate(insertion_point, it, it+1);
  13. }
  14. }
  15.  
  16. void print(std::vector<int> const& vec){
  17. for( int x : vec)
  18. std::cout << x << " ";
  19. std::cout << '\n';
  20. }
  21.  
  22. int main(){
  23. std::vector<int> arr = {2, 1, 5, 3, 7, 5, 4, 6};
  24. insertionSort(arr);
  25. print(arr);
  26. }
  27.  
Success #stdin #stdout 0s 16056KB
stdin
Standard input is empty
stdout
1 2 3 4 5 5 6 7