- Артикул:00-01025903
- Автор: Кормен Томас, Лейзерсон Чарльз, Ривест Рональд, Штайн Клиффорд
- ISBN: 978-5-907114-11-1
- Тираж: 1000 экз.
- Обложка: Твердый переплет
- Издательство: ДИАЛЕКТИКА (все книги издательства)
- Город: СПб
- Страниц: 1328
- Формат: 70х100/16
- Год: 2019
- Вес: 3456 г
- Серия: Учебник для ВУЗов (все книги серии)
Вначале были компьютеры, но перед компьютерами были алгоритмы. Теперь же, когда есть множество компьютеров, есть еще больше алгоритмов, и алгоритмы лежат в основе вычислений.
Эта книга служит исчерпывающим вводным курсом по современным компьютерным алгоритмам. В ней представлено большое количество конкретных алгоритмов, которые описываются достаточно глубоко, однако таким образом, чтобы разработка и анализ были доступны читателям всех уровней подготовки. Мы старались обойтись элементарными пояснениями, но при этом не нанести ущерба ни глубине изложения, ни математической строгости.
В каждой главе представлен определенный алгоритм и описаны метод его разработки, область применения и другие связанные с ним вопросы. Алгоритмы описываются и простым человеческим языком, и с помощью псевдокода, разработанного таким образом, чтобы быть понятным любому, у кого есть хотя бы минимальный опыт программирования. В книге представлены 244 рисунка, иллюстрирующих работу алгоритмов, и многие из них состоят из нескольких частей. Поскольку один из важнейших критериев разработки алгоритмов - их эффективность, каждое описание алгоритма включает в себя тщательный анализ времени его работы.
Данный учебник предназначен, в первую очередь, для студентов и аспирантов, изучающих тот или иной курс по алгоритмам и структурам данных. Он также будет полезен для технических специалистов, желающих повысить свой уровень в этой области, поскольку описание процесса разработки алгоритмов сопровождается изложением технических и математических вопросов.
В этом, третьем, издании книга вновь существенно изменена. В ней появились новые главы, пересмотренный псевдокод и более активный стиль изложения.
Оглавление
Предисловие
Часть I. Основы
Глава 1. Роль алгоритмов в вычислениях
Глава 2. Приступаем к изучению
Глава 3. Рост функций
Глава 4. Разделяй и властвуй
Глава 5. Вероятностный анализ и рандомизированные алгоритмы
Часть II. Сортировка и порядковая статистика
Глава 6. Пирамидальная сортировка
Глава 7. Быстрая сортировка
Глава 8. Сортировка за линейное время
Глава 9. Медианы и порядковые статистики
Часть III. Структуры данных
Глава 10. Элементарные структуры данных
Глава 11. Хеширование и хеш-таблицы
Глава 12. Бинарные деревья поиска
Глава 13. Красно-черные деревья
Глава 14. Расширение структур данных
Часть IV. Усовершенствованные методы разработки и анализа
Глава 15. Динамическое программирование
Глава 16. Жадные алгоритмы
Глава 17. Амортизационный анализ
Часть V. Сложные структуры данных
Глава 18. В-деревья
Глава 19. Фибоначчиевы пирамиды
Глава 20. Деревья ван Эмде Боаса
Глава 21. Структуры данных для непересекающихся множеств
Часть VI. Алгоритмы для работы с графами
Глава 22. Элементарные алгоритмы для работы с графами
Глава 23. Минимальные остовные деревья
Глава 24. Кратчайшие пути из одной вершины
Глава 25. Кратчайшие пути между всеми парами вершин
Глава 26. Задача о максимальном потоке
Часть VII. Избранные темы
Глава 27. Многопоточные алгоритмы
Глава 28. Работа с матрицами
Глава 29. Линейное программирование
Глава 30. Полиномы и быстрое преобразование Фурье
Глава 31. Теоретико-числовые алгоритмы
Глава 32. Поиск подстрок
Глава 33. Вычислительная геометрия
Глава 34. NP-полнота
Глава 35. Приближенные алгоритмы
Часть VIII. Приложения: математические основы
Приложение А. Суммы и ряды
Приложение Б. Множества и прочие художества
Приложение В. Комбинаторика и теория вероятности
Приложение Г. Матрицы
Литература
Предметный указатель