Куценко Илья Михайлович
§ Сравнение разных алгоритмов, решающих одну задачу § Оценка скорости исполнения алгоритма § Установка значений параметров алгоритма § Как следствие – нахождение оптимального (напр. удовлетворяющего по скорости выполнения, числу операций и объему памяти) алгоритма для решения той или иной задачи.
§ Запускаем алгоритмы одновременно – определяем самый быстрый § Алгоритм А (30 сек) быстрее Алгоритма Б (5 мин) в 10 раз Недостатки эмпирического анализа § Ожидание выполнения. Необходимость предварительного расчета времени работы алгоритма перед исполнением. § Природа входных данных. Входные данные: § Реальные § Случайные § Ошибочные
Что необходимо для мат. анализа? § Определить абстрактные операции алгоритма § Число операций § Время выполнения одной операций § Основная задача – определение частоты использования одной или нескольких фундаментальных операций
§ Основной параметр алгоритма – N § От величины N зависит время выполнения алгоритма § N – это степень полинома, размер файла про сортировке или поиске и тд. § Задача – выразить ресурсные требования программы (напр t выполнения) от N
Время выполнения Название 1 Постоянное Log N Логарифмическое N Линейное N * Log N N log N N 2 Квадратичное N 3 Кубическое 2 N Экспоненциальное
N lg. N N(lg N)2 N 3/2 N 2 10 3 3 33 110 32 100 7 10 664 4414 10000 1000 10 32 9966 99317 31623 1000000 13 100 132877 1765633 100000000 100000 17 316 1660964 27588016 31622777 1000000 20 1000 19931569 397267426 1000000000000
Секунды Часы/дни/месяцы/годы 102 1. 7 мин 103 2. 8 часа 104 1. 1 дня 105 1. 6 недели 106 3. 8 месяца 107 3. 1 года 108 31 год 109 310 лет 1010 никогда