Print all Permutations of a string/array code example
Example 1: how to get all permutations of an array
/* to be used something like this:
int [] toBePermuted = new int [] {1, 2, 3, 4};
ArrayList a = heap(toBePermuted);
any mention of int [] can be replaced with any other Array of objects */
ArrayList heap(int [] input) {
ArrayList ret = new ArrayList ();
ret = generate(input.length, input, ret);
return ret;
}
ArrayList generate(int k, int [] a, ArrayList output) {
if (k == 1) {
output.add(a.clone());
} else {
output = generate(k-1, a, output);
for (int i=0; i
Example 2: find all permutations of a string
void permute(string a, int l, int r)
{
// Base case
if (l == r)
cout<
Example 3: how to print all permutations of a string
void permutation(string s)
{
sort(s.begin(),s.end());
do{
cout << s << " ";
}
while(next_permutation(s.begin(),s.end()); // std::next_permutation
cout << endl;
}
Example 4: generate all permutations of string
void perm(char a[], int level){
static int flag[10] = {0};
static char res[10];
// If we are the last character of the input string
if(a[level] == '\0'){
// First we assign stopping point to result
res[level] = '\0';
// Now we print everything
for(int i = 0; res[i] != '\0'; ++i){
printf("%c", res[i]);
}
printf("\n");
++counter;
}
else{
// Scan the original string and flag to see what letters are available
for(int i = 0; a[i] != '\0'; ++i){
if(flag[i] == 0){
res[level] = a[i];
flag[i] = 1;
perm(a, level + 1);
flag[i] = 0;
}
}
}
}
int main(){
char first[] = "abc";
perm(first, 0);
return 0;
}
Example 5: find all permutations of a string
ABC
ACB
BAC
BCA
CBA
CAB