
Лекции - Структуры и алгоритмы компьютерной обработки данных / 1.Введение в анализ алгоритмов. Понятие сложности алгоритмов. Классы сложности алгоритмов
..docАнализ алгоритмов
-
Задачи анализа алгоритмов
-
Понятие алгоритма
-
Понятие алгоритмической задачи
-
Понятия временной и объемной сложности алгоритма
-
Порядок роста функции и его свойства
Анализ алгоритмов
Цели
-
Оценить качество алгоритмов с помощью количественных критериев
-
Сравнить различные алгоритмы для решения заданной алгоритмической задачи
Алгоритм - понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели.
Алгоритм имеет исходные данные (вход алгоритма) и выдает некоторый результат.
Алгоритмическая задача
-
входные данные
-
необходимый результат.
Алгоритм называют правильным, если на любом допустимом входе он заканчивает работу и выдает результат, удовлетворяющий требованиям задачи.
Пример: сортировка последовательности
Решение: Алгоритм сортировки прямыми вставками
For j:=2 to N do
begin
{добавить 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]:=k
End
Сложность алгоритмов
-
Временная сложность алгоритма — количество элементарных шагов, которые он выполняет.
-
Объемная сложность алгоритма — количество оперативной памяти, необходимой для его выполнения.
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
Порядок роста функции
Оценка сверху
Оценка снизу
Классы
сложности алгоритмов
Труднорешаемые задачи
-
Не найден полиномиальный алгоритм.
Класс NP – задачи, проверяемые за полиномиальное время.
Примеры труднорешаемых задач
-
Задача о рюкзаке
Задан набор n предметов с массами mi и стоимостями ci. Максимальная масса рюкзака M. Выбрать подмножество предметов так, чтобы Σ mi ≤ M и Σ сi → max.
-
Задача коммивояжера
Имеется n городов, nxn матрица A = (aij) содержит попарные расстояния между городами. Найти замкнутый маршрут, содержащий все города по одному разу, и имеющий минимальную длину.