Вопросы к Поиску с Алисой
Разница между алгоритмами динамического программирования и рекурсивными алгоритмами заключается в подходе к решению задач и в особенностях работы с результатами подзадач. yourtodo.life habr.com
Рекурсивные алгоритмы разбивают большую задачу на более мелкие подзадачи и решают их. habr.com При этом каждый новый вызов функции создаёт дополнительные затраты на память и время. skyeng.ru Чтобы избежать бесконечной рекурсии, необходимо определить базовый случай, при котором функция должна прекратить вызывать себя и вернуть результат. skyeng.ru
Алгоритмы динамического программирования делят задачу на кусочки и вычисляют их по очереди, шаг за шагом наращивая решения. habr.com При этом каждая подзадача решается только один раз, что сокращает количество вычислений. habr.com ru.wikipedia.org Для этого решения мелких подзадач сохраняются, например, в таблице. habr.com
Таким образом, рекурсивные алгоритмы работают «сверху вниз», а алгоритмы динамического программирования — «снизу вверх». yourtodo.life {6-host}