Предисловие
1. Разница курсов акций
1.1. Алгоритмы
1.2. Время выполнения работы и сложность
1.3. Используем стек для разницы курсов акций
Примечания
Упражнения
2. Исследуя лабиринты
2.1. Графы
2.2. Представление графов
2.3. Обход графа в глубину
2.4. Поиск в ширину
Примечания
Упражнения
3. Сжатие
3.1. Сжатие
3.2. Деревья и очереди с приоритетом
3.3. Код Хаффмана
3.4. Сжатие Лемпеля - Зива - Велча
Примечания
Упражнения
4. Секреты
4.1. Попробуйте расшифровать
4.2. Шифрование одноразовым ключом, или
одноразовый блокнот
4.3. AES-шифрование
4.4. Обмен ключами по методу Диффи - Хеллмана
4.5. Быстрое возведение в степень и возведение в
степень по модулю
Примечания
Упражнения
5. Делимся секретами
5.1. Шифрование с открытым ключом
5.2. Криптосистема RSA
5.3. Хеширование сообщения
5.4. Анонимизация интернет-трафика
Примечания
Упражнения
6. Все по порядку
6.1. Топологическая сортировка
6.2. Взвешенные графы
6.3. Критические пути
Примечания
Упражнения
7. Строки, абзацы, пути
7.1. Кратчайшие пути
7.2. Алгоритм Дейкстры
Примечания
Упражнения
8. Маршрутизация, арбитраж
8.1. Маршрутизация Интернета
8.2. Алгоритм Беллмана - Форда (- Мура)
8.3. Отрицательные веса и циклы
8.4. Арбитраж
Примечания
9. Что важнее всего
9.1. Суть пейдж-ранка
9.2. Матрица гиперссылок
9.3. Степенной метод
9.4. Матрица "Гугла"
Примечания
10. Прочность голосования
10.1. Система голосования
10.2. Метод Шульце
10.3. Алгоритм Флойда - Уоршелла
Примечания
11. Методы перебора, невесты и дихотомии
11.1. Последовательный поиск
11.2. Соответствие, сравнение, записи, ключи
11.3. Эффект Матфея и степенные законы
11.4. Самоорганизующийся поиск
11.5. Задача о разборчивой невесте
11.6. Бинарный поиск
11.7. Представление целых чисел на компьютере
11.8. И снова к бинарному поиску
11.9. Деревья сравнений
Примечания
12. Сортировочный компот
12.1. Сортировка методом выбора
12.2. Сортировка методом вставок
12.3. Сортировка кучей
12.4. Сортировка слиянием
12.5. Быстрая сортировка
12.6. Богатство выбора
Примечания
Упражнения
13. Гардероб, коллизия и слот
13.1. Соотнесение ключей и значений
13.2. Хеширование
13.3. Функции хеширования
13.4. Представление чисел с плавающей запятой
и хеширование
13.5. Коллизии
13.6. Цифровые отпечатки
13.7. Фильтры Блума
Примечания
Упражнения
14. Биты и деревья
14.1. Предсказание как проблема коммуникации
14.2. Информация и энтропия
14.3. Классификация
14.4. Деревья решений
14.5. Выбор атрибутов
14.6. Алгоритм ID3
14.7. Основные принципы работы
14.8. Бритва Оккама
14.9. Затраты, проблемы, улучшения
Примечания
Упражнения
15. Немного построчим
15.1. Сравнение строк перебором
15.2. Алгоритм Кнута - Морриса - Пратта
15.3. Алгоритм Бойера - Мура - Хорспула
Примечания
Упражнения
16. Предоставим дело случаю
16.1. Случайные числа
16.2. Случайная выборка
16.3. Борьба за власть
16.4. В поисках простых чисел
Примечания
Упражнения
Библиография
Предметный указатель