all permutations of a array code example
Example 1: how to get all permutations of an array
ArrayList<int []> heap(int [] input) {
ArrayList<int []> ret = new ArrayList<int []> ();
ret = generate(input.length, input, ret);
return ret;
}
ArrayList<int []> generate(int k, int [] a, ArrayList<int []> output) {
if (k == 1) {
output.add(a.clone());
} else {
output = generate(k-1, a, output);
for (int i=0; i<k-1; i++) {
if (k%2 == 0) {
int temp = a[i];
a[i] = a[k-1];
a[k-1] = temp;
} else {
int temp = a[0];
a[0] = a[k-1];
a[k-1] = temp;
}
generate(k-1, a, output);
}
}
return output;
}
Example 2: find all permutations of a string
void permute(string a, int l, int r)
{
if (l == r)
cout<<a<<endl;
else
{
for (int i = l; i <= r; i++)
{
swap(a[l], a[i]);
permute(a, l+1, r);
swap(a[l], a[i]);
}
}
}