лекция1.ppt

Preview:

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)

содержит попарные расстояния между городами. Найти замкнутый маршрут, содержащий все города по одному разу, и имеющий минимальную длину.

Домашнее задание

Recommended