Сообщений 9    Оценка 39        Оценить  
Система Orphus

Фундаментальные алгоритмы на C++

Автор: Роберт Седжвик
Издательство: DiaSoft, 2001
688 страниц

Материал предоставил: Алексей Кирдин
Найти в магазинах
Купить в Озоне (468 руб.)
Купить в OZ.by (Беларусь)
Купить в My-Shop.ru (389 руб.)

Аннотация

Содержание
Комментарии

Аннотация

Хорошая книга по алгоритмам, составленная в качестве учебного пособия. Описаны алгоритмы, которые наиболее часто применяются на практике. Книга построена в виде курса лекций, комбинирует в себе доходчивое и качественное описание материала с большим количеством упражнений на недосказанные темы. Для многих алгоритмов даны намеки на пути их ускорения и оценки повышения производительности, которые могут быть получены посредством их применения. Материал книги иллюстрируется кодом на языке С++.

Содержание

Часть 1. Анализ

Глава 1 Введение

1.1 Алгоритмы
1.2 Пример задачи: связность
1.3 Алгоритмы объединение-поиск
1.4 Обзор тем

Глава 2. Принципы анализа алгоритмов

2.1 Разработка и эмпирический анализ
2.2 Анализ алгоритмов
2.3 Рост функций
2.4 O-нотация
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 Примеры программ-клиентов, использующих АТД стека
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 B-деревья
16.4 Расширяемое хеширование
16.5 Перспективы

Предметный указатель

Комментарии

Алексей Кирдин:

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

    Сообщений 9    Оценка 39        Оценить