Понятие сложности алгоритмов.ppt
- Количество слайдов: 5
Понятие сложности алгоритмов. Выполнила: уч-ся группы ПКС-121 Гольбек М.
n Традиционно в программировании понятие сложности алгоритма связано с использованием ресурсов компьютера. n АЛГОРИТМА СЛОЖНОСТЬ вычислений - функция, дающая числовую оценку трудности (громоздкости) процессов применения алгоритма к исходным данным.
Меры сложности алгоритмов. n Мера сложности - функция, сопоставляющая каждому алгоритму (схеме) из данной модели целое неотрицательное число - его сложность (в некоторых случаях мера сложности зависит от дополнительных числовых параметров). Для алгоритма есть два естественных типа мер сложности - статические (объём описания алгоритма, например, число команд в машине Тьюринга) и динамические, подразделяющиеся на временные (максимальное или среднее время работы) и пространственные (максимальный или средний объём памяти, занимаемый в процессе выполнения программы). Динамическая мера сложности алгоритма в качестве аргумента имеет не только алгоритм, но и длину входных данных. Статические меры изучаются в теории колмогоровской сложности, а динамические - в теории тьюринговой сложности.
Скорость роста сложности алгоритмов. Точное знание количества операций, выполненных алгоритмом, не играет существенной роли в анализе алгоритмов. Куда более важным оказывается скорость роста этого числа при возрастании объема входных данных. n Существует три категории: n – алгоритмы, сложность которых растет по крайней мере так же быстро, как данная функция – алгоритмы, сложность которых растет с той же скоростью – алгоритмы, сложность которых растет медленнее, чем эта функция.
Асимптотическая сложность Несмотря на то, что функция временной сложности алгоритма в некоторых случаях может быть определена точно, в большинстве случаев искать точное её значение бессмысленно. Дело в том, что во-первых, точное значение временной сложности зависит от определения элементарных операций (например, сложность можно измерять в количестве арифметических операций, битовых операций или операций на машине Тьюринга), а во-вторых, при увеличении размера входных данных вклад постоянных множителей и слагаемых низших порядков, фигурирующих в выражении для точного времени работы, становится крайне незначительным. n Рассмотрение входных данных большого размера и оценка порядка роста времени работы алгоритма приводят к понятию асимптотической сложности алгоритма. При этом алгоритм с меньшей асимптотической сложностью является более эффективным для всех входных данных, за исключением лишь, возможно, данных малого размера. n
Понятие сложности алгоритмов.ppt