Найти тему

Грокаем алгоритмы. Ещё немного рекурсии. Часть 6.

Заметки:

  1. Принцип "Разделяй и властвуй" — рекурсивный метод для решения задач.
  2. Принцип состоит из двух шагов: сначала определяем базовый случай (самый простой из всех). Потом делим и сокращаем до тех пор, пока не останется базовый случай.
  3. Алгоритм Евклида — если вы найдете самый большой участок, подходящий для этого размера, это будет самый большой участок, подходящий для всей фермы. (Речь идёт о задаче, когда прямоугольник надо разделить на одинаковые квадраты и чтобы они были максимально большими).
  4. Еще одна задача для рекурсии: просуммировать все числа в массиве. Базовый случай — 0 элементов и сумма равно 0 или 1 элемент и сумма равна этому элементу. Если не знаете с чего начать писать рекурсивный метод с массивами, то начинайте с базового случая. Рекурсивный случай — 1 число в списке + сумма остального списка.
  5. Зачем применять рекурсию, если можно использовать циклы? Есть языки без циклов в функциональном программировании.

Немного задач с примерами рекурсии: https://github.com/Ladgertha/Algorithms/blob/master/src/main/java/Recursive.kt