fork download
  1. #include <algorithm>
  2. #include <functional>
  3. #include <iostream>
  4. #include <iterator>
  5. #include <list>
  6.  
  7. using namespace std;
  8.  
  9. void qsort(list<int>::iterator first, list<int>::iterator last)
  10. {
  11. if (distance(first, last) < 2)
  12. return;
  13. int pivot = *first;
  14.  
  15. list<int>::iterator it = partition(first, last, bind2nd(less<int>(), pivot));
  16.  
  17. qsort(first, it);
  18. qsort(it, last);
  19. }
  20.  
  21. int main()
  22. {
  23. std::list<int> l;
  24. l.push_back(5);
  25. l.push_back(4);
  26. l.push_back(1);
  27. l.push_back(10);
  28. l.push_back(3);
  29. l.push_back(6);
  30. l.push_back(7);
  31.  
  32. cout << "List:";
  33. copy(l.begin(), l.end(), std::ostream_iterator<int>(std::cout, " "));
  34. cout << endl;
  35.  
  36. qsort(l.begin(), l.end());
  37.  
  38. cout << "Sorted list:";
  39. copy(l.begin(), l.end(), std::ostream_iterator<int>(std::cout, " "));
  40. cout << endl;
  41. return 0;
  42. }
Success #stdin #stdout 0.01s 2856KB
stdin
Standard input is empty
stdout
List:5 4 1 10 3 6 7 
Sorted list:1 3 4 5 6 7 10