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.  
  11. int mid = 0;
  12.  
  13. int high = n-1;
  14.  
  15. while(low <= high) {
  16.  
  17. if(arr[mid]==0) {
  18. swap(arr[low], arr[mid]);
  19. low++;
  20. mid++;
  21. } else if(arr[mid]==1) {
  22. mid++;
  23. } else {
  24. swap(arr[mid], arr[high]);
  25. high--;
  26. }
  27. // switch(arr[mid]) {
  28. // case 0:
  29. // swap(arr[low], arr[mid]);
  30. // low++;
  31. // mid++;
  32. // break;
  33. // case 1:
  34. // mid++;
  35. // break;
  36. // case 2:
  37. // swap(arr[mid], arr[high]);
  38. // high--;
  39. // break;
  40. // }
  41. }
  42. }
  43.  
  44. int main() {
  45.  
  46. vector<int> arr = {0, 1, 2, 2, 1, 0, 0, 2, 0, 1, 1, 0};
  47.  
  48. sort(arr);
  49.  
  50. for(int num: arr) {
  51. cout<<num<<" ";
  52. }
  53. cout<<endl;
  54.  
  55. }
Success #stdin #stdout 0.01s 5288KB
stdin
10
aba
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
stdout
0 1 2 2 1 0 0 2 0 1 1 0