Справочник

Источники

Литература

  1. Levitin A. Introduction to the Design and Analysis of Algorithms, 3rd ed. Pearson, 2012. Разделы 2.1–2.6, 8.2 (memory functions), Приложения A и B. Основной источник: все определения, формулы и обозначения учебника согласованы с этой книгой.
  2. Cormen T. H., Leiserson C. E., Rivest R. L., Stein C. Introduction to Algorithms, 4th ed. MIT Press, 2022. Главы 3, 4, Приложение A; задачи главы 7 о глубине стека и устранении хвостовой рекурсии.
  3. Sedgewick R., Wayne K. Algorithms, 4th ed. Addison-Wesley, 2011. Раздел 1.4 (эмпирический анализ, тест удвоения).
  4. Kleinberg J., Tardos É. Algorithm Design. Pearson, 2005. Главы 2, 5.
  5. Graham R. L., Knuth D. E., Patashnik O. Concrete Mathematics, 2nd ed. Addison-Wesley, 1994. Главы 1, 2, 7 (суммы, рекуррентности, Ханойская башня).
  6. Лекция 4. Математический анализ нерекурсивных алгоритмов (материалы курса).
  7. Лекция 5. Математический анализ рекурсивных алгоритмов (материалы курса).

Программный код

Эмпирическая часть написана на Python и лежит в папке code/ репозитория github.com/rniwd/algorithm-analysis-textbook. Для запуска нужен Python 3 и matplotlib:

python3 -m pip install matplotlib
cd code
python3 run_all.py            # все скрипты со счётчиками
python3 verify_answers.py     # проверка всех числовых ответов задач и квизов
ФайлЧто проверяет
m1_max_element.pyMaxElement: $C(n) = n - 1$
m1_unique_elements.pyUniqueElements: оба худших входа $\frac{n(n-1)}{2}$, лучший $1$
m1_matrix.pyматрицы: $M(n) = A(n) = n^3$
m1_binary.pyBinary: $\lfloor\log_2 n\rfloor + 1$; цикл $i \leftarrow 2i$
m1_sequential_search.pyсредний случай $\frac{p(n+1)}{2} + n(1-p)$
m1_selection_sort.py, m1_upper_sum.py, m1_dependent_loops.pyсвои примеры модуля 1 и циклы с зависимой границей
m2_factorial.py, m2_hanoi.py, m2_binrec.py, m2_fibonacci.pyразборы модуля 2
m2_rec_max.py, m2_fast_pow.py, m2_rec_sum.pyсвои примеры модуля 2, лимит рекурсии в Python
tasks/m1_e1_triple_loop.py, tasks/m2_e1_split.pyрешения эмпирических задач
verify_answers.pyвсе числовые ответы задач и квизов сайта

Графики из этих скриптов показаны в разделах эмпирической проверки модуля 1 и модуля 2.

Инструменты

Использование ИИ

При подготовке учебника использовался ассистент Claude Code: черновики текста, псевдокода, задач, визуализаций и скриптов. Все определения и формулы сверены с книгой Левитина. Числовые ответы проверены программой verify_answers.py, решения проверены участниками группы вручную. Подробности — в отчёте группы.