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