Пропустить до содержимого

Как использовать рекурсию для достижения абсолютного равенства в Python?

[

Рекурсия в Python: Введение

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

По окончании данного учебника вы поймете:

  • Что означает, когда функция вызывает сама себя рекурсивно
  • Как дизайн функций Python поддерживает рекурсию
  • Какие факторы следует учитывать при выборе решения задачи рекурсией или без нее
  • Как реализовать рекурсивную функцию на Python

Затем вы изучите несколько задач программирования на Python, которые используют рекурсию и сравните рекурсивное решение с не рекурсивным.

Что такое рекурсия?

Слово рекурсия происходит от латинского слова recurrere, что означает бежать или возвращаться, возвращаться обратно или повторяться. Вот некоторые онлайн-определения рекурсии:

  • Dictionary.com : Действие или процесс возвращения или повторного запуска
  • Wiktionary : Описание объекта (обычно функции) с использованием этого объекта
  • The Free Dictionary : Метод определения последовательности объектов, такой как выражение, функция или набор, где задается некоторое количество начальных объектов и каждый следующий объект определяется через предшествующие объекты

Рекурсивное определение включает в себя определение, в котором сам термин, который определяется, присутствует в определении самого себя. Самовызовы часто встречаются в реальной жизни, даже если они не всегда сразу заметны. Например, представим, что вы хотите описать набор людей, состоящих из ваших предков. Вы можете описать их так:

Обратите внимание, как понятие, которое определяется, предки, появляется в собственном определении. Это рекурсивное определение.

В программировании рекурсия имеет очень точное значение. Это относится к технике кодирования, при которой функция вызывает саму себя.

Почему использовать рекурсию?

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

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

Таблица содержания

  • Что такое рекурсия?
  • Почему использовать рекурсию?
  • Рекурсия в Python
  • Начните: отсчет до нуля
  • Вычисление факториала
    • Определение функции для вычисления факториала на Python
    • Сравнение скорости реализаций факториала
  • Обход вложенного списка
    • Обход вложенного списка с использованием рекурсии
    • Обход вложенного списка без использования рекурсии
  • Обнаружение палиндромов
  • Сортировка с быстрой сортировкой
    • Выбор опорного элемента
    • Реализация разделения
    • Использование реализации быстрой сортировки
  • Заключение

Будут представлены подробные, шаг за шагом, выполнимые примеры кода в Python, чтобы помочь в понимании.