nicknamecsharp
@nicknamecsharp

Как работает алгоритм перебора перестановок (рекурсия)?

Не могу разобраться с принципом работы алгоритма, помогите(
C#
static void MakePermutations(int[] permutation, int position, List<int[]> result)
        {
            if (position == permutation.Length)
            {
                result.Add((int[])permutation.Clone());
                return;
            }

            for (int i = 0; i < permutation.Length; i++)
            {
                var index = Array.IndexOf(permutation, i, 0, position);
                if (index == -1)
                {
                    permutation[position] = i;
                    MakePermutations(permutation, position + 1, result);
                }
            }
        }
  • Вопрос задан
  • 302 просмотра
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Перебирается число, которого еще нет в массиве. Ставится на следеющее место и рекурсивно запускается для каждого варианта.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы