Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

XX Содержание

9.4.1 Поиск и операции по обновлению в списке пропуска

.

.

.

.

.

.

404

9.4.2 Вероятностный анализ пропуска перечисляет ...

.

.

.

.

.

.

408

9.5 Словари......................

.

.

.

.

.

.

411

9.5.1 Словарь ADT.............

.

.

.

.

.

.

411

9.5.2 C ++ внедрение словаря......

.

.

.

.

.

.

413

9.5.3 Внедрения с осведомленными о местоположении записями

.

.

.

.

.

.

415

9.6 Упражнения.......................

.

.

.

.

.

.

417

10 деревьев поиска

423

10.1 Деревья двоичного поиска.................

.

.

.

.

.

.

424

10.1.1 Поиск...................

.

.

.

.

.

.

426

10.1.2 Операции по обновлению..............

.

.

.

.

.

.

428

10.1.3 C ++ внедрение дерева двоичного поиска

.

.

.

.

.

.

432

10.2 Деревья AVL.......................

.

.

.

.

.

.

438

10.2.1 Операции по обновлению..............

.

.

.

.

.

.

440

10.2.2 C ++ внедрение дерева AVL.....

.

.

.

.

.

.

446

10.3 Косые деревья......................

.

.

.

.

.

.

450

10.3.1 Вывих....................

.

.

.

.

.

.

450

10.3.2 Когда вывихнуть.................

.

.

.

.

.

.

454

10.3.3 Амортизируемый анализ вывиха ......

.

.

.

.

.

.

456

10.4 (2,4) Деревья......................

.

.

.

.

.

.

461

10.4.1 Многоканальные деревья поиска............

.

.

.

.

.

.

461

10.4.2 Операции по обновлению для (2, 4) деревья......

.

.

.

.

.

.

467

10.5 Красно-черные деревья...................

.

.

.

.

.

.

473

10.5.1 Операции по обновлению..............

.

.

.

.

.

.

475

10.5.2 C ++ внедрение Красно-черного дерева..

.

.

.

.

.

.

488

10.6 Упражнения.......................

.

.

.

.

.

.

492

11 сортировок, наборы и выбор

499

11.1 Вид слияния........................

.

.

.

.

500

11.1.1 Делить-и-побеждать................

.

.

.

.

500

11.1.2 Слияние множеств и списков.............

.

.

.

.

505

11.1.3 Продолжительность вида слияния........

.

.

.

.

508

11.1.4 C ++ внедрения вида слияния.......

.

.

.

.

509

11.1.5 Вид слияния и уравнения повторения .....

.

.

.

.

511

11.2 Быстрый вид........................

.

.

.

.

513

11.2.1 Рандомизированный Быстрый Вид..............

.

.

.

.

521

11.2.2 C ++ внедрения и оптимизация.....

.

.

.

.

523

11.3 Изучение сортировки алгоритмической линзы...

.

.

.

.

526

11.3.1 Более низкое направляющееся в сортировку............

.

.

.

.

526

11.3.2 Линейно-разовая сортировка: вид ведра и вид корня

.

.

.

.

528

11.3.3 Сравнение алгоритмов сортировки..........

.

.

.

.

531

Содержание

xxi

11.4 Наборы и Структуры Союза/Находить............

.

.

.

.

533

11.4.1 Набор ADT...................

.

.

.

.

533

11.4.2 Наборы Mergable и образец метода шаблона

.

.

.

.

534

11.4.3 Разделение с операциями находки союз......

.

.

.

.

538

11.5 Выбор.........................

.

.

.

.

542

11.5.1 Слива-и-поиск.................

.

.

.

.

542

11.5.2 Рандомизированный быстро-избранный.............

.

.

.

.

543

11.5.3 Анализ, рандомизированный быстро-избранный.......

.

.

.

.

544

11.6 Упражнения.........................

.

.

.

.

545

12 последовательностей и динамическое программирование

553

12.1 Операции по последовательности...............

.

.

.

.

.

.

.

.

.

554

12.1.1 Класс последовательности STL..........

.

.

.

.

.

.

.

.

.

555

12.2 Динамическое программирование............

.

.

.

.

.

.

.

.

.

557

12.2.1 Матричный продукт цепи..........

.

.

.

.

.

.

.

.

.

557

12.2.2 ДНК и текстовое выравнивание последовательности..

.

.

.

.

.

.

.

.

.

560

12.3 Алгоритмы соответствия образца........

.

.

.

.

.

.

.

.

.

564

12.3.1 Грубая сила...............

.

.

.

.

.

.

.

.

.

564

12.3.2 Алгоритм Бойер-Мура......

.

.

.

.

.

.

.

.

.

566

12.3.3 Knuth-Morris-Pratt алгоритм...

.

.

.

.

.

.

.

.

.

570

12.4 Текстовое сжатие и жадный метод

.

.

.

.

.

.

.

.

.

575

12.4.1 Hufman-кодирующий алгоритм....

.

.

.

.

.

.

.

.

.

576

12.4.2 Жадный метод...........

.

.

.

.

.

.

.

.

.

577

12.5 Попытки.......................

.

.

.

.

.

.

.

.

.

578

12.5.1 Стандартные попытки..............

.

.

.

.

.

.

.

.

.

578

12.5.2 Сжатые попытки............

.

.

.

.

.

.

.

.

.

582

12.5.3 Попытки Сафкса...............

.

.

.

.

.

.

.

.

.

584

12.5.4 Поисковые системы.............

.

.

.

.

.

.

.

.

.

586

12.6 Упражнения....................

.

.

.

.

.

.

.

.

.

587

13 алгоритмов графа

593

13.1 Графы.........................

.

.

.

.

.

.

594

13.1.1 Граф ADT................

.

.

.

.

.

.

599

13.2 Структуры данных для графов.............

.

.

.

.

.

.

600

13.2.1 Структура списка края............

.

.

.

.

.

.

600

13.2.2 Структура списка смежности.........

.

.

.

.

.

.

603

13.2.3 Структура матрицы смежности.......

.

.

.

.

.

.

605

13.3 Пересечения графа...................

.

.

.

.

.

.

607

13.3.1 Глубина сначала ищет..............

.

.

.

.

.

.

607

13.3.2 Осуществление глубины сначала ищет.......

.

.

.

.

.

.

611

13.3.3 Универсальное внедрение DFS в C ++....

.

.

.

.

.

.

613

13.3.4 Полиморфные объекты и декоратор оценивают

.

.

.

.

.

.

621