fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. void generatePermutations(vector<int> &perm, int start) {
  6. if (start == perm.size()) { // Điều kiện dừng
  7. for (int x : perm) cout << x << " ";
  8. cout << endl;
  9. return;
  10. }
  11. for (int i = start; i < perm.size(); i++) {
  12. swap(perm[start], perm[i]); // Hoán đổi phần tử
  13. generatePermutations(perm, start + 1); // Gọi đệ quy
  14. swap(perm[start], perm[i]); // Backtrack (khôi phục trạng thái ban đầu)
  15. }
  16. }
  17.  
  18. int main() {
  19. vector<int> perm = {1, 2, 3};
  20. generatePermutations(perm, 0);
  21. return 0;
  22. }
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
1 2 3 
1 3 2 
2 1 3 
2 3 1 
3 2 1 
3 1 2