70 lines
928 B
C++
70 lines
928 B
C++
/*
|
|
* C++ Program to Generate All Permutations using BackTracking
|
|
*/
|
|
#include <iostream>
|
|
#include <cstdio>
|
|
#include <cstring>
|
|
#include <cstdlib>
|
|
using namespace std;
|
|
|
|
/* swap values at two pointers */
|
|
void swap (char *x, char *y)
|
|
{
|
|
char temp;
|
|
temp = *x;
|
|
*x = *y;
|
|
*y = temp;
|
|
}
|
|
|
|
/* print permutations of string */
|
|
void permute(char *a, int i, int n)
|
|
{
|
|
int j;
|
|
if (i == n)
|
|
cout<<a<<endl;
|
|
else
|
|
{
|
|
for (j = i; j <= n; j++)
|
|
{
|
|
swap((a + i), (a + j));
|
|
permute(a, i + 1, n);
|
|
swap((a+i), (a + j));
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Main*/
|
|
int main()
|
|
{
|
|
char a[] = "abcd";
|
|
permute(a, 0, 3);
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
|
|
abcd
|
|
abdc
|
|
acbd
|
|
acdb
|
|
adcb
|
|
adbc
|
|
bacd
|
|
badc
|
|
bcad
|
|
bcda
|
|
bdca
|
|
bdac
|
|
cbad
|
|
cbda
|
|
cabd
|
|
cadb
|
|
cdab
|
|
cdba
|
|
dbca
|
|
dbac
|
|
dcba
|
|
dcab
|
|
dacb
|
|
dabc
|