Содержание
- 2. Рекурсия. Определение В программировании рекурсия — вызов функции (процедуры) из неё же самой, непосредственно (простая рекурсия)
- 3. Рекурсия. Основные положения Рекурсию надо использовать там, где она реально необходима. Числа Фибоначчи и факториалы –
- 4. Примеры использования рекурсии Поиск в глубину в графе Сортировка слиянием «Быстрая» сортировка (Хоара) Обход различного рода
- 5. Стек вызовов Рекурсия использует системный стек для запоминания вызываемых подпрограмм и их параметров Следите за стеком.
- 6. Рекурсия. Иллюстрация
- 7. Перебор с помощью рекурсии Даны N упорядоченных множеств U1, U2, …, UN (N – неизвестно) Требуется
- 8. Перебор с помощью рекурсии. Общая схема
- 9. Перебор с помощью рекурсии. Схема реализации Procedure Backtrack ( ); Begin If Then Else Begin ;
- 10. Задача о Ханойских башнях. История Древняя индийская легенда 1883 г. Франсуа Люка «Профессор Клаус» Современное название
- 11. Ханойские башни. Решение Допустим на штыре n дисков Необходимо каким-то образом(пока непонятно каким) перенести n-1 дисков
- 12. Ханойские башни. Графическая иллюстрация решения
- 13. Ханойские башни. Алгоритм решения. Функция Перенести_диск(номер_1, номер_2, количество) begin если (количество > 0) то begin номер_промежуточный
- 14. Меморизация. Предпосылки При реализации рекурсивных подпрограмм часто вызываются подпрограммы с одними и теми же параметрами, т.е.
- 15. Меморизация. Что это? От английского слова memo – памятка. Идея заключается в том, чтобы запомнить параметры
- 16. Меморизация. Особенности Эффективна, когда рекурсивная процедура или функция имеет целые параметры с небольшим диапазоном значений Тогда
- 17. Спасибо за внимание!
- 19. Скачать презентацию