fork download
  1. #include<bits/stdc++.h>
  2. #include<vector>
  3. using namespace std;
  4.  
  5. void sort(vector<int>& arr) {
  6.  
  7. int n = arr.size();
  8.  
  9. int low = 0;
  10. int mid = 0;
  11. int high = n-1;
  12.  
  13. while(mid <= high) {
  14.  
  15. switch(arr[mid]) {
  16. case 0:
  17. swap(arr[low], arr[mid]);
  18. low++;
  19. mid++;
  20. break;
  21. case 1:
  22. mid++;
  23. break;
  24. case 2:
  25. swap(arr[mid], arr[high]);
  26. high--;
  27. break;
  28. }
  29. }
  30. }
  31.  
  32. int main() {
  33.  
  34. vector<int> arr = {0, 1, 2, 2, 1, 0, 0, 2, 0, 1, 1, 0};
  35.  
  36. sort(arr);
  37.  
  38. for(int num: arr) {
  39. cout<<num<<" ";
  40. }
  41. cout<<endl;
  42.  
  43. }
Success #stdin #stdout 0.01s 5276KB
stdin
Standard input is empty
stdout
0 0 0 0 0 1 1 1 1 2 2 2