Upload
roman-maklashov
View
58
Download
0
Embed Size (px)
Citation preview
Структуры и алгоритмы компьютерной обработки данных
•36 часов – лекции (зав. каф. АИС Шухман А.Е.)
•36 часов – лабораторные работы (Горелик А.А.)
Формы контроля:
•расчетно-графическое задание
•экзамен
Основная литература
Ахо А., Хопкрофт Дж., Ульман Дж. Структуры данных и алгоритмы. М.:Вильямс, 2000 – 384 с.
Вирт Н. Алгоритмы и структуры данных. СПб: Невский диалект, 2001. – 352 с.
Макконнелл Дж. Основы современных алгоритмов. – М.: Техносфера, 2004.
Окулов С.М. Программирование в алгоритмах. М.: Лаборатория базовых знаний, 2002.–341 с.
Седжвик Р. Фундаментальные алгоритмы на С++/Алгоритмы на графах– К.:Диасофт, 2002. – 496 с.
Седжвик Р. Фундаментальные алгоритмы на С++/Анализ/Структуры данных/Сортировка/Поиск– К.:Диасофт, 2001. – 688 с.
Шухман А. Е. Практикум по решению задач на ЭВМ. Часть 1. – Оренбург:ОГПУ, 2005 – 80 с.
Дополнительная литература Бакнелл Дж. Фундаментальные алгоритмы и
структуры данных в Delphi. – СПб.: Диасофт, 2003. – 560 с.
Гудрич М.Т. Структуры данных и алгоритмы в Java. – Мн.: Новое знание, 2003 – 671 с.
Кнут Д. Искусство программирования Т. 1. Основные алгоритмы. – М.: Вильямс, 2000.
Кнут Д. Искусство программирования Т. 2. Получисленные алгоритмы. – М.: Вильямс, 2000.
Кнут Д. Искусство программирования Т. 3. Сортировка и поиск. – М.: Вильямс, 2000.
Кормен, Лейзерсон, Ривест. Алгоритмы: построение и анализ – М: МЦНМО, 1999.
Анализ алгоритмов
Задачи анализа алгоритмов Понятие алгоритма Понятие алгоритмической задачи Понятия временной и объемной
сложности алгоритма Порядок роста функции и его
свойства
Анализ алгоритмов
Цели Оценить качество алгоритмов с
помощью количественных критериев
Сравнить различные алгоритмы для решения заданной алгоритмической задачи
Алгоритм
Алгоритм - понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели.
Алгоритм имеет исходные данные (вход алгоритма) и выдает некоторый результат.
Алгоритмическая задача
входные данные необходимый результат.
Алгоритм называют правильным, если на любом допустимом входе он заканчивает работу и выдает результат, удовлетворяющий требованиям задачи.
Пример: сортировка последовательности
Решение: Алгоритм сортировки прямыми вставками
For j:=2 to N dobegin {добавить a[j] к отcортированной части массива A[1..j-1]} k:=A[j]; i:=j-1; while (i>0) and (A[i]>k) do begin A[i+1]:=A[i]; i:=i-1 End; A[i+1]:=kend
Сложность алгоритмов
Временная сложность алгоритма — количество элементарных шагов, которые он выполняет.
Объемная сложность алгоритма — количество оперативной памяти, необходимой для его выполнения.
От чего зависит сложность?
Пример: сортировка прямыми вставками
for j:=2 to N do
begin
k:=A[j]; i:=j-1;
while (i>0) and (A[i]>k)do
begin
A[i+1]:=A[i]; i:=i-1
end;
A[i+1]:=k
end
a
b
c
d
e
N
N-1
Σtj
Σ(tj-1)
N-1
Сложность сортировки
•Лучший случай (tj=1) T(n) = a1n+b1
•Худший случай (tj=j) T(n) = a2n2+b2n+c2
•Средний случай (tj=j/2) T(n) = a3n2+b3n+c3
Порядок роста функции
WWW.claymath.org
Оценка сверху
Оценка снизу
Классы сложности алгоритмов
Труднорешаемые задачи
Не найден полиномиальный алгоритм.
Класс NP – задачи, проверяемые за полиномиальное время.
P=NP?
NP-полные задачи
Задача факторизации целого числа не является NP-полной
Примеры труднорешаемых задач Задача о рюкзаке
Задан набор n предметов с массами mi и стоимостями ci. Максимальная масса рюкзака M. Выбрать подмножество предметов так, чтобы Σ mi ≤ M и Σ сi → max.
Задача коммивояжера Имеется n городов, nxn матрица A = (aij)
содержит попарные расстояния между городами. Найти замкнутый маршрут, содержащий все города по одному разу, и имеющий минимальную длину.
Домашнее задание