2010г.
Количество страниц: 1056
Книгу "Алгоритмы на С++" 3-е издание Роберт Седжвик тщательно переписал, существенно расширил и обновил свою популярную книгу, чтобы получилось современное и исчерпывающее описание важных алгоритмов и структур данных. Книга содержит части 1-5 Анализ, структуры данных, сортировка, поиск, алгоритмы на графах. Вместе с Кристофером Ван Виком он разработал новые реализации на C++, которые выражают эти методы в сжатом, но наглядном виде, а также предоставляют программистам практические средства для их проверки в реальных приложениях. В книге представлено много новых алгоритмов, а их объяснения гораздо более подробны, чем в предыдущем издании. Новая структура текста и подробные иллюстрации к нему вместе с сопутствующими комментариями значительно улучшают представление материала. Третье издание также содержит удачное сочетание теории и практики, которые делают работу Седжвика бесценным источником сведений для более чем 250 000 программистов! В частях 1-4 книги рассматриваются фундаментальные алгоритмы, структуры данных, сортировка и поиск. В ней приведено подробное описание фундаментальных структур данных и алгоритмов для сортировки, поиска и сопутствующих приложений. Хотя, по сути, материал книги применим к программированию на любом языке, реализации Ван Вика и Седжвика используют естественную связь между классами C++ и реализациями абстрактных типов данных (АТД). В части 5 книги рассматриваются алгоритмы на графах, которые играют все более важную роль во множестве приложений, таких как сетевая связность, конструирование электронных схем, составление графиков, обработка транзакций и выделение ресурсов.
Каждая часть содержит новые алгоритмы и реализации, усовершенствованные описания и диаграммы, а также множество новых упражнений для лучшего усвоения материала. Акцент на АТД расширяет диапазон применения программ и лучше соотносится с современными средами объектно-ориентированного программирования. В этой книге описаны следующие темы · Подробное описание массивов, связных списков, строк, деревьев и других базовых структур данных · Акцентирование внимание на абстрактных типах данных (АТД), модульном программировании, объектно-ориентированном программировании и классах C++ · Более 100 алгоритмов сортировки, выбора, реализаций АТД очереди с приоритетами и реализаций АТД таблицы символов (для поиска) · Новые реализации биномиальных очередей, многопутевой поразрядной сортировки, рандомизированных BST-деревьев, скошенных деревьев, слоеных списков, многопутевых trie-деревьев, B-деревьев, расширяемого хеширования и многих других методов · Больший объем численных характеристик алгоритмов, позволяющих сравнивать их · Более 1000 новых упражнений, которые помогают разобраться в свойствах алгоритмов · Полный обзор свойств и типов графов · Орграфы и DAG-графы · Минимальные остовные деревья · Кратчайшие пути · Сетевые потоки · Диаграммы, примеры кода на C++ и подробные описания алгоритмов Настоящее издание предоставляет программистам полный инструментальный набор для реализации, отладки и использования алгоритмов в широком диапазоне компьютерных приложений. Об авторах Роберт Седжвик - профессор компьютерных наук в Принстонском университете. Занимает должность директора в компании Adobe Systems, работал в исследовательских коллективах в Xerox PARC, Институте оборонного анализа и INRIA. Вместе с Филиппом Флажоле (Philippe Flajolet) написал книгу An Introduction to the Analysis of Algorithms. Кристофер Дж. Ван Вик - профессор математики и компьютерных наук и заодно заместитель декана в Университете Дрю. Работал в исследовательском коллективе в Bell Laboratories. И Седжвик, и Ван Вик получили свои степени доктора философии в Университете Стэнфорда под руководством Дональда Э. Кнута.
Оглавление книги
Роберта Седжвика "Алгоритмы на C++"
Часть I. Анализ 19
Глава 1. Введение 20
Глава 2. Принципы анализа алгоритмов 43
Часть II. Структуры данных 73
Глава 3. Элементарные структуры данных 74
Глава 4. Абстрактные типы данных 123
Глава 5. Рекурсия и деревья 181
Часть III. Сортировка 239
Глава 6. Элементарные методы сортировки 240
Глава 7. Быстрая сортировка 285
Глава 8. Слияние и сортировка слиянием 311
Глава 9. Очереди с приоритетами и пирамидальная сортировка 333
Глава 10. Поразрядная сортировка 375
Глава 11. Специальные методы сортировки 407
Часть IV. Поиск 439
Глава 12. Таблицы символов и деревья бинарного поиска 440
Глава 13. Сбалансированные деревья 487
Глава 14. Хеширование 529
Глава 15. Поразрядный поиск 561
Глава 16. Внешний поиск 601
Часть V. Алгоритмы на графах 633
Глава 17. Виды графов и их свойства 634
Глава 18. Поиск на графе 699
Глава 19. Орграфы и DAG-графы 757
Глава 20. Минимальные остовные деревья 823
Глава 21. Кратчайшие пути 867
Глава 22. Потоки в сетях 943
Предметный указатель 1051