Фундаментальные алгоритмы и структуры данных в Delphi

ЖАНРЫ

Поделиться с друзьями:

Фундаментальные алгоритмы и структуры данных в Delphi

Шрифт:

Annotation

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».

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

Несмотря на то что книга рассчитана в первую очередь на профессиональных разработчиков приложений на Delphi, она окажет несомненную пользу и начинающим программистам, демонстрируя им приемы и трюки, которые столь популярны у истинных «профи». Все коды примеров, упомянутые в книге, доступны для выгрузки на Web-сайте издательства.

Джулиан Бакнелл

Введение

Почему книга посвящена алгоритмам именно на Delphi?

Что я должен предварительно знать?

Какая версия Delphi мне нужна?

Что и где я могу найти в книге, или, другими словами, из чего состоит эта книга?

Что это за странные конструкции $ifdef в коде?

От изготовителя fb2.

Благодарности

Глава 1. Что такое алгоритм?

Что такое алгоритм?

Анализ алгоритмов

О-нотация

Лучший, средний и худший случаи

Алгоритмы и платформы

Виртуальная память и страничная организация памяти

Пробуксовка

Локальность ссылок

Кэш процессора

Выравнивание данных

Пространство или время

Длинные строки

Использование ключевого слова const

Осторожность в отношении автоматического преобразования типов

Тестирование и отладка

Утверждения

Комментарии

Протоколирование

Трассировка

Анализ покрытия

Тестирование модулей

Отладка

Резюме

Глава 2. Массивы.

Массивы

Типы массивов в Delphi

Стандартные массивы

Динамические массивы

Новые динамические массивы

Класс TList, массив указателей

Краткий обзор класса TList

Класс TtdObjectList

Массивы на диске

Резюме

Глава 3. Связные списки, стеки и очереди

Односвязные списки

Узлы связного списка

Создание односвязного списка

Вставка и удаление элементов в односвязном списке

Соображения по поводу эффективности

Использование начального узла

Использование диспетчера узлов

Класс односвязного списка

Двухсвязные списки

Вставка и удаление элементов в двухсвязном списке

Использование начального и конечного узлов

Использование диспетчера узлов

Класс двухсвязного списка

Достоинства и недостатки связных списков

Стеки

Стеки на основе односвязных списков

Стеки на основе массивов

Пример использования стека

Очереди

Очереди на основе односвязных списков

Очереди на основе массивов

Резюме

Глава 4. Поиск.

Процедуры сравнения

Последовательный поиск

Массивы

Связные списки

Бинарный поиск

Массивы

Связные списки

Вставка элемента в отсортированный контейнер

Резюме

Глава 5. Сортировка

Алгоритмы сортировки

Тасование массива TList

Основы сортировки

Самые медленные алгоритмы сортировки

Пузырьковая сортировка

Шейкер-сортировка

Сортировка методом выбора

Сортировка методом вставок

Быстрые алгоритмы сортировки

Сортировка методом Шелла

Сортировка методом прочесывания

Самые быстрые алгоритмы сортировки

Сортировка слиянием

Быстрая сортировка

Сортировка слиянием для связных списков

Резюме

Глава 6. Рандомизированные алгоритмы.

Генерация случайных чисел

Критерий хи-квадрат

Метод средних квадратов

Линейный конгруэнтный метод

Тестирование

Тест на однородность

Тест на пропуски

Тест "покер"

Тест "сбор купонов"

Результаты выполнения тестов

Комбинирование генераторов

Аддитивные генераторы

Тасующие генераторы

Выводы по алгоритмам генерации случайных чисел

Другие распределения случайных чисел

Списки с пропусками

Поиск в списке с пропусками

Вставка в список с пропусками

Удаление из списка с пропусками

Полная реализация класса связного списка

Резюме

Глава 7. Хеширование и хеш-таблицы

Функции хеширования

Простая функция хеширования для строк

Функции хеширования PJW

Разрешение конфликтов посредством линейного зондирования

Преимущества и недостатки линейного зондирования

Удаление элементов из хеш-таблицы с линейным зондированием

Класс хеш-таблиц с линейным зондированием

Другие схемы открытой адресации

Квадратичное зондирование

Псевдослучайное зондирование

Двойное хеширование

Разрешение конфликтов посредством связывания

Преимущества и недостатки связывания

Класс связных хеш-таблиц

Разрешение конфликтов посредством группирования

Хеш-таблицы на диске

Расширяемое хеширование

Резюме

Глава 8. Бинарные деревья.

Создание бинарного дерева

Вставка и удаление с использованием бинарного дерева

Перемещение по бинарному дереву

Обход в ширину, симметричный обход и обход в глубину

Книги из серии:

Без серии

Комментарии: