Пишу рекурсивный алгоритм, который заполняет лист всевозможными вариантами
перестановок.
На выходе (при указанном наборе входных данных)
получаю:
1 0
1 0
Но
ожидается:
0 1
1 0
Помогите, пожалуйста, исправить сложившуюся ситуацию. Только начал изучать рекурсию и не могу сообразить, что тут не так.
namespace Permutations
{
internal class Program
{
static void GetPermutations(int[] permutations, int position, List<int[]> result)
{
if (position == permutations.Length)
{
result.Add(permutations);
return;
}
for (var i = 0; i < permutations.Length; i++)
{
if (Array.IndexOf(permutations, i, 0, position) != -1)
continue;
permutations[position] = i;
GetPermutations(permutations, position + 1, result);
}
}
static void Main()
{
var list = new List<int[]>();
GetPermutations(new int[2], 0, list);
foreach (var i in list)
Console.WriteLine(string.Join(" ", i));
}
}
}