fork download
  1. /*
  2.  
  3. Code for generating all permutation of an array using Backtracking
  4.  
  5. */
  6.  
  7.  
  8. #include<bits/stdc++.h>
  9. using namespace std;
  10.  
  11. void print(int a[],int n){
  12. for(int i = 0; i < n; i++)cout<<a[i]<<" ";
  13. cout<<endl;
  14. }
  15.  
  16. int p = 0;
  17. /*assuming all numebers are different in array*/
  18. void generate(int a[],int n,int i){// n = array size
  19. if(i == n){// traveresed entire array
  20. // p++;
  21.  
  22. print(a,n);
  23. return;
  24. }
  25. for(int j = i; j < n; j++){
  26.  
  27. swap(a[i],a[j]);//fix element at ith index
  28.  
  29. generate(a,n,i+1);
  30.  
  31. swap(a[i],a[j]);//backtrack
  32.  
  33. }
  34.  
  35. }
  36.  
  37. int main(){
  38. int a[]={1,2,3,4,5};
  39.  
  40. generate(a,5,0);
  41.  
  42. //cout<<p<<endl;
  43. return 0;
  44. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
1 2 3 4 5 
1 2 3 5 4 
1 2 4 3 5 
1 2 4 5 3 
1 2 5 4 3 
1 2 5 3 4 
1 3 2 4 5 
1 3 2 5 4 
1 3 4 2 5 
1 3 4 5 2 
1 3 5 4 2 
1 3 5 2 4 
1 4 3 2 5 
1 4 3 5 2 
1 4 2 3 5 
1 4 2 5 3 
1 4 5 2 3 
1 4 5 3 2 
1 5 3 4 2 
1 5 3 2 4 
1 5 4 3 2 
1 5 4 2 3 
1 5 2 4 3 
1 5 2 3 4 
2 1 3 4 5 
2 1 3 5 4 
2 1 4 3 5 
2 1 4 5 3 
2 1 5 4 3 
2 1 5 3 4 
2 3 1 4 5 
2 3 1 5 4 
2 3 4 1 5 
2 3 4 5 1 
2 3 5 4 1 
2 3 5 1 4 
2 4 3 1 5 
2 4 3 5 1 
2 4 1 3 5 
2 4 1 5 3 
2 4 5 1 3 
2 4 5 3 1 
2 5 3 4 1 
2 5 3 1 4 
2 5 4 3 1 
2 5 4 1 3 
2 5 1 4 3 
2 5 1 3 4 
3 2 1 4 5 
3 2 1 5 4 
3 2 4 1 5 
3 2 4 5 1 
3 2 5 4 1 
3 2 5 1 4 
3 1 2 4 5 
3 1 2 5 4 
3 1 4 2 5 
3 1 4 5 2 
3 1 5 4 2 
3 1 5 2 4 
3 4 1 2 5 
3 4 1 5 2 
3 4 2 1 5 
3 4 2 5 1 
3 4 5 2 1 
3 4 5 1 2 
3 5 1 4 2 
3 5 1 2 4 
3 5 4 1 2 
3 5 4 2 1 
3 5 2 4 1 
3 5 2 1 4 
4 2 3 1 5 
4 2 3 5 1 
4 2 1 3 5 
4 2 1 5 3 
4 2 5 1 3 
4 2 5 3 1 
4 3 2 1 5 
4 3 2 5 1 
4 3 1 2 5 
4 3 1 5 2 
4 3 5 1 2 
4 3 5 2 1 
4 1 3 2 5 
4 1 3 5 2 
4 1 2 3 5 
4 1 2 5 3 
4 1 5 2 3 
4 1 5 3 2 
4 5 3 1 2 
4 5 3 2 1 
4 5 1 3 2 
4 5 1 2 3 
4 5 2 1 3 
4 5 2 3 1 
5 2 3 4 1 
5 2 3 1 4 
5 2 4 3 1 
5 2 4 1 3 
5 2 1 4 3 
5 2 1 3 4 
5 3 2 4 1 
5 3 2 1 4 
5 3 4 2 1 
5 3 4 1 2 
5 3 1 4 2 
5 3 1 2 4 
5 4 3 2 1 
5 4 3 1 2 
5 4 2 3 1 
5 4 2 1 3 
5 4 1 2 3 
5 4 1 3 2 
5 1 3 4 2 
5 1 3 2 4 
5 1 4 3 2 
5 1 4 2 3 
5 1 2 4 3 
5 1 2 3 4