Я пытаюсь сгенерировать все перестановки в списке, но каждый раз, когда я возвращаю список, который я перехожу, возвращается к исходному состоянию, что с ним происходит?Сбрасывать список при каждой рекурсии при попытке перестановки
public static void PermuteAndSolve(List<City> cities, int recursionLevel, int Length)
{
if (recursionLevel == Length)
{
foreach (City city in cities)
{
Console.Write(city.name);
}
Console.WriteLine("");
}
else
{
for (int i = recursionLevel; i <= Length; i++)
{
swap(cities, recursionLevel, Length);
PermuteAndSolve(cities, recursionLevel + 1, Length);
swap(cities, recursionLevel, Length);
}
}
}
Я знаю, что своп работает правильно.
игнорировать тот факт, что это называется PermuteAndSolve и не делает никакого решения атм – Awia
что делает своп делать? Кроме того, что вы подразумеваете под сбросом? –
swap буквально меняет 2 значения, указанные в списке, и с помощью сброса я имею в виду, что он возвращается обратно к исходному списку, переданному в функцию – Awia