* Содержание
* Введение
* Глава 1. Парадигма структурного программирования
* Зачем нужны общие принципы?
* Нисходящее проектирование
* Три базовых элемента структурного программирования
* Пример разработки
* Глава 2. Вычислительные алгоритмы
* Моделирование непрерывных процессов дискретными
* Метод половинного деления. Общая задача поиска величины
* Метод касательных
* Метод хорд
* Метод итераций (последовательных приближений)
* Обобщение метода половинного деления
* Метод наименьших квадратов
* Задача вычисления площадей криволинейных фигур
* Метод Симпсона
* Метод Монте-Карло
* Глава 3. Числовые алгоритмы
* Алгоритм Евклида
* Алгоритмы факторизации и поиска простых
* Выделение полного квадрата (алгоритм Ферма)
* Квадратичное решето
* Алгоритм Полларда
* Алгоритмы поиска простых чисел
* Решето Аткина
* Решето Сундарама
* Тесты простоты
* Числа Мерсенна
* Тест Люка-Лемера
* Числа Ферма
* Тест Пепина
* Псевдослучайные числа
* Критерии правильности случайных чисел
* Критерий, основанный на квадратичном отклонении
* Линейный конгруэнтный метод
* Методы перемешивания
* Глава 4. Арифметика
* Представление числа в позиционной системе счисления
* Проблемы технической реализации арифметики
* Двоичный сумматор
* Ускорение операции сложения
* Представление чисел в форме с фиксированной и плавающей десятичной точкой
* Реализация арифметики на уровне алгоритмического языка
* Сложение двух чисел
* Вычитание из большего меньшего
* Умножение
* Деление
* Некоторые другие алгоритмы
* Алгоритм быстрого возведения в степень
* Быстрый перевод из десятичной в двоичную систему счисления
* Решение диофантовых уравнений
* Двоичная арифметика
* Сложение двоичных чисел
* Как преобразовать в двоичное число дробную часть
* Вычитание двоичных чисел
* Умножение в двоичной системе счисления
* Деление в двоичной системе счисления
* Глава 5. Рекурсия и динамическое программирование
* Общее определение
* Задача о ханойской башне
* Переход от рекурсивного к нерекурсивному решению
* Рекурсия как метод поиска
* Динамическое программирование
* Задача обхода конем шахматной доски
* Факторизация числа
* Глава 6. Сортировки
* Общая постановка задачи
* Обменные сортировки. Сортировка пузырьком
* Шейкерная сортировка
* Анализ качеств алгоритма
* Сортировка выбором
* Сортировка вставками
* Сортировка Шелла
* Быстрая сортировка
* Двоичная сортировка
* Сортировка слияниями
* Глава 7. Комбинаторные задачи
* Общая постановка задачи
* Оптимизация перебора
* Связь комбинаторики с алгоритмами на графах
* Основные комбинаторные задачи
* Задача получения перестановок на множестве из N элементов
* Построение сочетаний без повторений на множестве элементов
* Сочетания с повторениями
* Задача получения размещений
* Глава 8. Динамические структуры данных
* Понятие о динамической величине
* Линейный связный список
* Зачем рекурсивные структуры нужны?
* Использование рекурсивных определений для создания деревьев данных
* Глава 9. Алгоритмы принятия решений
* Постановка задачи. Понятие эвристического алгоритма
* Оценочная функция
* Метод минимакса
* Альфа-бета алгоритм
* Глава 10. Алгоритмы на графах
* Стратегии обхода
* Обход графа в ширину
* Обход графа в глубину
* Построение остовного дерева
* Алгоритм Прима
* Алгоритм Краскала
* Алгоритм поиска компонент связности
* Волновой алгоритм
* Алгоритм Дейкстры
* Алгоритм Флойда
* Нахождение максимального потока
* Глава 11. Приложения
* Приложение 1. Элементы комбинаторики
* Приложение 2. Теория графов
* Приложение 3. Элементы теории вероятности
* Приложение 4. Синтаксис языка Компонентный Паскаль
* Список литературы