Л. А. ПАВЛОВ, Н. В. ПЕРВОВА
СТРУКТУРЫ
И АЛГОРИТМЫ
ОБРАБОТКИ ДАННЫХ
Учебник
Издание второе,
исправленное и дополненное
•САНКТПЕТЕРБУРГ•
•МОСКВА•
•КРАСНОДАР•
2020
УДК 004. 657
ББК 32. 81я73
П 12 Павлов Л. А. Структуры и алгоритмы обработки данных : учебник /
Л. А. Павлов, Н. В. Первова. — 2е изд. , испр. и доп. — Санкт
Петербург : Лань, 2020. — 256 с. : ил. — (Учебники для вузов. Спе
циальная литература). — Текст : непосредственный. ISBN 9785811448814
Рассмотрены математические основы анализа вычислительной сложности
алгоритмов, типовые структуры данных для представления множеств: массивы и
динамические списковые структуры, стеки, очереди и деревья. Приведены методы
решения комбинаторных задач и основные способы сокращения перебора, задачи
поиска, сортировки и алгоритмы на графах. Для студентов факультета информатики и вычислительной техники по
направлению подготовки бакалавров «Информатика и вычислительная техника»,
а также других направлений и профилей, связанных с разработкой программного
обеспечения. УДК 004.
657
ББК 32. 81я73
Рецензенты:
Г. П. ОХОТКИН — доктор технических наук, профессор, декан факультета
радиоэлектроники и автоматики Чувашского государственного университета им. И. Н. Ульянова;
К. А. МОРДАСОВ — кандидат технических наук, заместитель генерального
директора по развитию ООО «ИТКонсалтинг». Обложка
П. И. ПОЛЯКОВА
© Издательство «Лань», 2020
© Л. А. Павлов, Н. В. Первова, 2020
© Издательство «Лань»,
художественное оформление, 2020
ПРЕДИСЛОВИЕ
Для разработки программ недостаточно просто знать какой-
либо язык программирования. Процесс проектирования про-
грамм предполагает несколько этапов, начиная с постановки за-
дачи и заканчивая получением эффективно и правильно работа-
ющей программы. Важнейшим начальным этапом является фор-
мализация поставленной задачи. На этом этапе строится матема-
тическая модель задачи с привлечением различных математиче-
ских конструкций, таких как системы линейных или дифферен-
циальных уравнений, множества, графы, матрицы и т. п. Выбор
математических конструкций зависит от характера решаемой за-
дачи. После построения математической модели производится по-
иск методов решений исходной задачи в терминах этой модели. Для вычислительных задач метод решения формально описыва-
ется в форме алгоритма, который представляет собой конечную
последовательность инструкций, имеющих четкий смысл и вы-
полняемых с конечными вычислительными затратами за конеч-
ное время. Другими словами, алгоритм представляет собой фор-
мально описанную процедуру решения задачи, получающую не-
которые исходные данные (вход алгоритма) и выдающую ре-
зультат вычислений.