Понятие сложности алгоритма
Проблема эквивалентности
Проблема эквивалентности сформулирована следующим образом не существует общего метода определения эквивалентности алгоритмов.
Следовательно, программист должен доказать, что его программа:
1. действительно решает ту задачу, для которой она разработана,
2. будет надежно функционировать в другой среде.
Вычислительным процессом, порожденным алгоритмом, называется последовательность шагов алгоритма, пройденных при исполнении этого алгоритма.
Виды сложности:
вычислительная (временная);
объемная (емкостная) сложность определяется количеством скалярных переменных, элементов массивов, элементов записей или просто количеством байт;
сложность текста алгоритма характеризует исполнителя (например, ЭВМ), его язык, а не метод решения задач;
логическая определяется количеством человек-месяцев, которые нужно потратить на создание алгоритма, поскольку не представляется возможным дать объективные количественные характеристики.
Сложность алгоритма выражают в виде функции от объема входных данных.
Пусть задан алгоритм А. Для него существует параметр п, характеризующий объем обрабатываемых алгоритмом данных и называемый размерностью задачи.
Обозначим:
Т(п) – время выполнения алгоритма,
F – некая функция от п.
Будем говорить, что Т(п) – время выполнения алгоритма А – имеет порядок роста f(п) при , или по-другому, алгоритм имеет теоретическую сложность О(f(п)), если найдется такая постоянная С>0 и число п0, что Т(п) С* f(п) при всех п>=п0.
Здесь предполагается, что f(п) неотрицательно, по крайней мере при п>=п0.
2 декабря
СРС: Составить дерево к структурам данных.