Witam,
Napisałem algorytm, który znajduje wszystkie permutacje n-elementowego zbioru, ale nie działa on do końca tak jak bym chciał... Otóż permutacja 1,2,3 jest u mnie równa permutacji 3,2,1, a więc łączna liczba permutacji to n!/2. Jak mogę go usprawnić?
void generatePermutations(vector<int> v, int n, int k) {
static int level = -1;
level++;
v[k] = level;
if (level == n-1) {
// Skonczone
}
else
for (int i=0; i<n; i++) {
if (v[i] == 0)
generatePermutations(v, n, i);
}
level = level-1;
v[k] = 0;
}