Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. #include <functional>
  2.  
  3. template<typename T, typename Compare = std::less<T>() >
  4. void selection_sort(T first, T last, Compare comp) {
  5. T start = first;
  6. if (start == last || start == last - 1) {
  7. return;
  8. }
  9. while (first != last - 1) {
  10. T min = first;
  11. start = first + 1;
  12. while (start != last) {
  13. if (comp(*start,*min)) {
  14. min = start;
  15. }
  16. start++;
  17. }
  18. if (min != first) {
  19. typename T::value_type tmp = *min;
  20. *min = *first;
  21. *first = tmp;
  22. }
  23. first++;
  24. }
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement