Мы увидели, насколько важно знание структуры данных и алгоритмов в мире программирования. О них нужно знать, чтобы быть хорошим программистом. Кроме того, вы должны знать о разных подходах к программированию, которые мы используем для решения данной проблемы.

В этой статье мы попытаемся понять один из таких подходов, известный как возврат.

Но сначала нам нужно узнать о рекурсии. Если вы на самом деле не знаете о рекурсии, перейдите по ссылке ниже.

https://www.geeksforgeeks.org/recursion/

Backtracking — это алгоритмический метод решения проблемы дополнительным способом. Он использует рекурсивный подход для объяснения проблем. Можно сказать, что поиск с возвратом необходим для поиска всех возможных комбинаций для решения задачи оптимизации.

Разберемся с возвратом с помощью программы.

Написанная ниже программа предназначена для генерации подмножеств множества.

Результат, сгенерированный таким образом, выглядит следующим образом

Работа программы очень проста. Вы добавляете элемент из списка «li» в какой-то другой список «li2», передаете его в другом вызове с «init», увеличивая его на единицу при каждом вызове, и печатаете элементы списка «li2», если значение «init» становится равным длине исходного списка «li», подмножества которого должны быть сгенерированы. Когда поток возвращается обратно, мы просто удаляем последний добавленный элемент в список «li2».

Откат оказывается лучшим вариантом, когда вы просто не можете решать проблемы итеративно, а более поздний подход терпит неудачу.

Вы можете попрактиковаться в проблемах с возвратом на таких платформах, как Hackerrank, Hackerearth, Codechef и т. д., чтобы лучше понять то же самое.