Эта книга посвящена глубокому исследованию всех основополагающих концепций и алгоритмов, которые можно отнести к разряду “вечных". Изучив их, вы получите знания, которые никогда не устареют и которыми вы будете пользоваться всегда.
Краткость, точность, выверенность, актуальность, изобилие примеров и учебных заданий - вот лишь краткий перечень очевидных достоинств книги. Иллюстрация алгоритмов на одном из наиболее эффективных языков C++ лишний раз подчеркивает их популярность. Книгу можно использовать в качестве справочника и даже просто читать как художественную литературу, получая при этом ни с чем не сравнимое удовольствие.
Поскольку книга построена в виде курса лекций, ее можно использовать и в учебном процессе.

Алгоритмы.
В общем случае при создании компьютерной программы мы реализуем метод, который ранее был разработан для решения какой-либо задачи. Часто этот метод не зависит от конкретного используемого компьютера — весьма вероятно, что он будет равно пригодным для многих компьютеров и многих компьютерных языков. Именно метод, а не саму программу нужно исследовать для выяснения способа решения задачи. Термин алгоритм используется в компьютерных науках для описания метода решения задачи, пригодного для реализации в виде компьютерной программы. Алгоритмы составляют основу компьютерных наук: они являются основными объектами изучения во многих, если нс в большинстве ее областей.
Большинство представляющих интерес алгоритмов касаются методов организации данных, участвующих в вычислениях. Созданные таким образом объекты называются структурами данных, и они также являются центральными объектами изучения в компьютерных науках. Следовательно, алгоритмы и структуры данных идут рука об руку. В этой книге мы покажем, что структуры данных существуют в качестве субпродуктов или конечных продуктов алгоритмов и, следовательно, их нужно изучить, чтобы понять алгоритмы. Простые алгоритмы могут Порождать сложные структуры данных и наоборот, сложные алгоритмы могут использовать простые структуры данных. В этой книге будут изучены свойства многих структур данных; фактически книга вполне могла бы называться "Алгоритмы и структуры данных в C++".
ОГЛАВЛЕНИЕ.
Часть 1. Анализ.
Глава 1. Введение.
1.1. Алгоритмы.
1.2. Пример задачи: связность.
1.3. Алгоритмы объединение-поиск.
1.4. Перспектива.
1.5. Обзор тем.
Глава 2. Принципы анализа алгоритмов.
2.1. Разработка и эмпирический анализ.
2.2. Анализ алгоритмов.
2.3. Рост функций.
2.4. О-нотация.
2.5. Простейшие рекурсии.
2.6. Примеры алгоритмического анализа.
2.7. Гарантии, предсказания и ограничения.
Часть 2. Структуры данных.
Глава 3. Элементарные структуры данных.
3.1 Строительные блоки.
3.2. Массивы.
3.3. Связные списки.
3.4. Обработка простых списков.
3.5. Распределение памяти под списки.
3.6. Строки.
3.7. Составные структуры данных.
Глава 4. Абстрактные типы данных.
4.1. Абстрактные объекты и коллекции объектов.
4.2 АТД для стека магазинного типа.
4.3. Примеры программ-клиентов, использующих ATD стека.
4.4. Реализации АТД стека.
4.5. Создание нового АТД.
4.6. Очереди FIFO и обобщенные очереди.
4.7. Повторяющиеся и индексные элементы.
4.8. АТД первого класса.
4.9. Пример использования АТД в приложении.
4.10. Перспективы.
Глава 5. Рекурсия и деревья.
5.1. Рекурсивные алгоритмы.
5.2. Разделяй и властвуй.
5.3. Динамическое программирование.
5.4. Деревья.
5.5. Математические свойства бинарных деревьев.
5.6. Обход дерева.
5.7. Рекурсивные алгоритмы бинарных деревьев.
5.8. Обход графа.
5.9. Перспективы.
Часть 3. Сортировка.
Глава 6. Элементарные методы сортировки.
6.1 Правила игры.
6.2. Сортировка выбором.
6.3. Сортировка вставками.
6.4. Пузырьковая сортировка.
6.5. Характеристики производительности элементарных методов сортировки.
6.6. Сортировка методом Шелла.
6.7. Сортировка других типов данных.
6.8. Сортировка по индексам и указателям.
6.9. Сортировка связных списков.
6.10. Метод распределяющего подсчета.
Глава 7. Быстрая сортировка.
7.1. Базовый алгоритм.
7.2. Характеристики производительности быстрой сортировки.
7.3. Размер стека.
7.4. Подфайлы небольших размеров.
7.5. Метод разделения с вычислением медианы из трех элементов.
7.6. Дублированные ключи.
7.7. Строки и векторы.
7.8. Выборка.
Глава 8. Слияние и сортировка слиянием.
8.1. Двухпутевое слияние.
8.2. Абстрактное обменное слияние.
8.3. Нисходящая сортировка слиянием.
8.4. Усовершенствования базового алгоритма.
8.5. Восходящая сортировка слиянием.
8.6. Производительность сортировки слиянием.
8.7. Реализация сортировки слиянием, ориентированной на связные списки.
8.8. Возврат к рекурсии.
Глава 9. Очереди по приоритетам и пирамидальная сортировка.
9.1. Элементарные реализации.
9.2. Пирамидальная структура данных.
9.3. Алгоритмы для сортирующих деревьев.
9.4. Пирамидальная сортировка.
9.5. Абстрактный тип данных очереди по приоритетам.
9.6. Очередь по приоритетам для индексных элементов.
9.7. Биномиальные очереди.
Глава 10. Поразрядная сортировка.
10.1. Биты, байты и слова.
10.2. Двоичная быстрая сортировка.
10.3. Поразрядная сортировка MSD.
10.4. Трехпутевая поразрядная быстрая сортировка.
10.5. Поразрядная сортировка LSD.
10.6. Рабочие характеристики поразрядных сортировок.
10.7. Сортировки с сублинейным временем выполнения.
Глава 11. Методы сортировки специального назначения.
11.1. Четно-нечетная сортировка слиянием Бэтчера.
11.2. Сети сортировки.
11.3. Внешняя сортировка.
11.4. Различные реализации сортировки-слияния.
11.5. Параллельная процедура сортировки-слияния.
Часть 4. Поиск.
Глава 12. Таблицы символов и деревья бинарного поиска.
12.1. Абстрактный тип данных таблицы символов.
12.2. Поиск с использованием индексации по ключам.
12.3. Последовательный поиск.
12.4. Бинарный поиск.
12.5. Деревья бинарного поиска.
12.6. Характеристики производительности деревьев бинарного поиска.
12.7. Реализация индексов при использовании таблиц символов.
12.8. Вставка в корень в деревьях бинарного поиска.
12.9. Реализации других функций АТД с помощью BST-дерева.
Глава 13. Сбалансированные деревья.
13.1. Рандомизованные BST-деревья.
13.2. Расширенные деревья бинарного поиска.
13.3. Нисходящие 2-3-4-деревья.
13.4. Красно-черные деревья, или RB-деревья.
13.5. Списки пропусков.
13.6. Характеристики производительности.
Глава 14. Хеширование.
14.1 Хеш-функции.
14.2. Раздельное связывание.
14.3. Линейное зондирование.
14.4. Двойное хеширование.
14.5. Динамические хеш-таблицы.
14.6. Перспективы.
Глава 15. Поразрядный поиск.
15.1. Деревья цифрового поиска.
15.2. Trie-деревья.
15.3. patricia-деревья.
15.4. Многопутевые trie-деревья и TST-деревья.
15.5. Алгоритмы индексирования текстовых строк.
Глава 16. Внешний поиск.
16.1. Правила игры.
16.2. Индексированный последовательный доступ.
16.3. В-деревья.
16.4. Расширяемое хеширование.
16.5. Перспективы.
Предметный указатель.
Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Фундаментальные алгоритмы на C++, Анализ, Структуры данных, Сортировка, Поиск, Части 1-4, Седжвик Р., 2001 - fileskachat.com, быстрое и бесплатное скачивание.
Скачать файл № 1 - pdf
Скачать файл № 2 - djvu
Ниже можно купить эту книгу, если она есть в продаже, и похожие книги по лучшей цене со скидкой с доставкой по всей России.Купить книги
Скачать - djvu - Яндекс.Диск.
Скачать - pdf - Яндекс.Диск.
Дата публикации:
Теги: учебник по программированию :: программирование :: Седжвик :: алгоритм :: метод Шелла
Смотрите также учебники, книги и учебные материалы:
Предыдущие статьи:








