Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры МЛТА v.1.0.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
490.19 Кб
Скачать

77. Асимптотическая сложность, порядок сложности. Сложность в среднем и в худшем случае.

Рассмотрение входных данных большого размера и оценка порядка роста времени работы алгоритма приводят к понятию асимптотической сложности алгоритма. Для записи асимптотической сложности алгоритмов используются асимптотические обозначения:

«пропылесосить ковер» требует время, линейно зависящее от его площади (Θ(A)), то есть на ковер, площадь которого больше в два раза, уйдет в два раза больше времени. Соответственно, при увеличении площади ковра в сто тысяч раз, объем работы увеличивается строго пропорционально в сто тысяч раз.

А) Худший случай

Максимальное количество переприсваиваний максимума (на каждом проходе цикла) будет в том случае, если элементы массива отсортированы по возрастанию. Трудоемкость алгоритма в этом случае равна:

FA^(n)=1+1+1+ (n-1) (3+2+2)=7 n - 4 = Q(n).

Б) Лучший случай

Минимальное количество переприсваивания максимума (ни одного на каждом проходе цикла) будет в том случае, если максимальный элемент расположен на первом месте в массиве. Трудоемкость алгоритма в этом случае равна:

FAÚ(n)=1+1+1+ (n-1) (3+2)=5 n - 2 = Q(n).

78. Трудоемкость алгоритмов. Классификация алгоритмов по виду функции трудоёмкости

Трудоемкость алгоритма это количество элементарных операций, которые необходимо выполнить для решения задачи с помощью данного алгоритма

Для получения функции трудоемкости алгоритма, представленного в формальной системе введенной абстрактной машины необходимо уточнить понятия «элементарных» операций. В качестве таких «элементарных» операций предлагается использовать следующие:

Простое присваивание: а ¬ b;

Одномерная индексация a[i] : (адрес (a)+i* длина элемента);

Арифметические операции: (*, /, -, +);

Операции сравнения: a < b;

Логические операции (l1) {or, and, not} (l2);

Конструкция «Следование»

Трудоемкость конструкции есть сумма трудоемкостей блоков, следующих друг за другом.

F «следование» = f1 + … + fk, где k – количество блоков.

Конструкция «Ветвление»

if ( l ) then fthen с вероятностью p

else felse с вероятностью (1 - p)

Общая трудоемкость конструкции «Ветвление» требует анализа вероятности выполнения переходов на блоки «Then» и «Else» и определяется как: F «ветвление» = fthen * p + felse * (1-p).

Конструкция «Цикл»

F«цикл» = 1+3*N+N*f«тела цикла»

79, 80

79. Методики перехода к временным оценкам трудоёмкости алгоритмов. Пооперационный анализ. Метод Гиббсона. Метод прямого определения среднего времени.

Дано: FA(DA) – трудоёмкость алгоритма. Требуется определить время работы программной реализации алгоритма – TA(DA).

1) Пооперационный анализ

Получить пооперационную функцию трудоемкости для каждой из используемых алгоритмом элементарных операций с учетом типов данных.

Экспериментальное определение среднего времени выполнения данной элементарной операции на конкретной вычислительной машине.

Ожидаемое время выполнения рассчитывается как сумма произведений пооперационной трудоемкости на средние времена операций: TA(N) = å FА оп i(N) * `t оп i

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]