Учебное пособие. Издание: 6-е, дополненное. — М.: МЦНМО, 2017. — 320 с. — ISBN 978-5-4439-0685-0.
Книга содержит задачи по программированию различной трудности. Большинство задач приводятся с решениями. Цель книги — научить основным методам построения корректных и быстрых алгоритмов.
Для учителей информатики, старшеклассников, студентов младших курсов высших учебных заведений. Пособие может быть использовано на кружковых и факультативных занятиях в общеобразовательных учреждениях, в школах с углублённым изучением математики и информатики, а также в иных целях, не противоречащих законодательству РФ.
Предыдущее издание книги вышло в 2014 г.
Несколько замечаний вместо предисловия
Переменные, выражения, присваиванияЗадачи без массивов
Массивы
Индуктивные функции (по А.Г. Кушниренко)
Порождение комбинаторных объектовРазмещения с повторениями
Перестановки
Подмножества
Разбиения
Коды Грея и аналогичные задачи
Несколько замечаний
Подсчёт количеств
Обход дерева. Перебор с возвратамиФерзи, не бьющие друг друга: обход дерева позиций
Обход дерева в других задачах
СортировкаКвадратичные алгоритмы
Алгоритмы порядка nlog n
Применения сортировки
Нижние оценки для числа сравнений при сортировке
Родственные сортировке задачи
Конечные автоматы и обработка текстовСоставные символы, комментарии и т.п.
Ввод чисел
Типы данныхСтеки
Очереди
Множества
Разные задачи
РекурсияПримеры рекурсивных программ
Рекурсивная обработка деревьев
Порождение комбинаторных объектов, перебор
Другие применения рекурсии
Как обойтись без рекурсииТаблица значений (динамическое программирование)
Стек отложенных заданий
Более сложные случаи рекурсии
Разные алгоритмы на графахКратчайшие пути
Связные компоненты, поиск в глубину и ширину
Сети, потоки и разрезы
Сопоставление с образцомПростейший пример
Повторения в образце - источник проблем
Вспомогательные утверждения
Алгоритм Кнута-Морриса-Пратта
Алгоритм Бойера-Мура
Алгоритм Рабина
Более сложные образцы и автоматы
Суффиксные деревья
Анализ игрПримеры игр
Цена игры
Вычисление цены: полный обход
Альфа-бета-процедура
Ретроспективный анализ
Оптимальное кодированиеКоды
Неравенство Крафта-Макмиллана
Код Хаффмана
Код Шеннона-Фано
Представление множеств. ХешированиеХеширование с открытой адресацией
Хеширование со списками 242
Деревья. Сбалансированные деревьяПредставление множеств с помощью деревьев
Сбалансированные деревья
Контекстно-свободные грамматикиОбщий алгоритм разбора
Метод рекурсивного спуска
Алгоритм разбора для LL(1)-грамматик
Синтаксический разбор слева направо (LR)LR-процессы
LR(0)-грамматики
SLR(1)-грамматики
LR(1)-грамматики, LALR(1)-грамматики
Общие замечания о разных методах разбора
Книги для чтения
Предметный указатель
Указатель имён