Источник: Nuances of Programming Предыдущая часть: “Структуры данных: подход «разделяй и властвуй»” Подход динамического программирования схож с подходом «разделяй и властвуй»: тоже разбивает задачи на как можно более мелкие подзадачи. Отличие в том, что здесь подзадачи решаются не независимо. Результаты этих более мелких подзадач запоминаются и используются для аналогичных или перекрывающихся подзадач. Динамическое программирование применяется там, где есть задачи, которые можно разделить на похожие подзадачи, а их результаты использовать повторно. Эти алгоритмы в основном применяются для оптимизации. Прежде чем решать текущую подзадачу, динамическим алгоритмом изучаются результаты ранее решенных подзадач. Решения подзадач комбинируются для получения лучшего решения. Таким образом, мы можем сказать, что: Сравнение В отличие от «жадных» алгоритмов, нацеленных на локальную оптимизацию, динамические алгоритмы устремлены к общей оптимизации задачи. В отличие от алгоритмов с подходом «разд
Структуры данных: динамическое программирование
22 февраля 202222 фев 2022
102
1 мин