Garbage / Информатика / 3.3.7 - Анализ алгоритмов
.pdfАнализ алгоритмов.
Для выработки количественных критериев сравнения алгоритмов, претендующих на решение одной и той же задачи, используются такие характеристики алгоритмов как время и объем памяти, используемых алгоритмом.
Пусть A – алгоритм решения задачи P для любых данных x из области D. Пусть tA(x) – время работы алгоритма A (количество элементарных тактов, выполняемых на некоторой модели вычислительного устройства) на входных данных x D , sA(x) -объем памяти (количество ячеек), используемой алгоритмом A при обработке x, а |x| - размер входных данных x, т.е. число, характеризующее их объем. Тогда функция от размера данных n
T A (n) = sup{tA (x) : x D, | x | ≤n} , S A (n) = sup{sA (x) : x D, | x | ≤n}
называются соответственно временной и емкостной сложностями алгоритма A. Таким образом, временная и емкостная сложности оценивают время и объем
памяти алгоритма в “худшем” случае. Если известно распределение вероятности p(x) на входе x алгоритма A,
∑x D, |x|≤n p(x) =1,
то функции |
|
∑x D, |x|≤n p(x) t A(x) |
(средняя временная сложность) и |
∑x D, |x|≤n p(x) s A(x) |
(средняя емкостная сложность) |
характеризуют (как функции от размера входа n) средние потребности алгоритма A во времени и памяти.