Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по МПиПА.doc
Скачиваний:
38
Добавлен:
02.05.2014
Размер:
25.43 Mб
Скачать

Качественные характеристики программ

1.Удобство чтения

2.Гибкость-настраиваемость функций системы по требованиям различных пользователей.

3.Мобильность программных систем-независимость от технической базы и ОС, установленной на компе.+ переносимость.

4.Параметры учета человеческого фактора(дружественный интерфейс,наличие контекстно-обучающей программы, документации)

5.Надежность ПО- определяется бесперебойностью и устойчивостью работы и возможности анализа возникающих ошибок.

6.Модифицируемость ПО-возможность добавления новых функций в программу.

7.Коммуникативность программных систем(максимальная интеграция с другими системными продуктами).

Количественные характеристики программ. Порядок сложности алгоритма

1.Пространственная эффективность –Характеризуется объемом памяти, требуемой на выполнение алгоритма. Если две программы выполняют одни и те же задачи с точки зрения пространственной эффективности, то более эффективной будет та программа ,которая требует меньше памяти.

2.Временная эффективность программы- определяется временем выполнения программы.

Для оценки этого времени используется показатель, называемый О-сложностью или порядком сложности алгоритма.

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

Функция f(n) где n –кол-во обработанных данных имеет порядок сложности О(g(n)), если имеется константа k и счетчик n0 такие, что f(n)<= k* g(n) при n>= n0

Правила определения О-сложности:

1.При определении О-сложности постоянные множители не учитываются.

О(k*f(n)= O(f(n))

2. О-сложность произведений двух функций равна произведению их О-сложностей.

O(f(n)* g(n))=0(f(n))*0(g(n))

3. О-сложность суммы 2-х функций равна доминанте О-сложностей этих функций.

O(f(n)+ g(n))=доминанте0(f(n)) or 0(g(n))

Пр.О(n5+n2)=O(n5)

Виды О-сложности:

О(1)-время выполнения алгоритма не зависит от объема входных данных

О(n)(Линейная)в зависимости от количества элементов время будет расти линейно. Например оператор цикла for while

O(n2)полиномиальная(квадратичная)сложность.ПР.:вложенный цикл for ()

{for()…

}

O(n3)кубическая-двойная вложенность

О(log n)-логарифмическая, присуща алгоритмам в которых проблема разделена на множество мелких и они решены по отдельности.

О(nlog n)- логарифмическая-соответствует алгоритмам в которых проблема разделена на множество мелких, которые решены по отдельности и результаты решений объединяются

Чем меньше порядок О-сложности, тем меньше время выполнения.

Для сокращения порядка О-сложности требуется попытаться уменьшить глубину вложенности, уменьшить количество операндов в циклах с большой глубиной вложенности.

Для большинства алгоритмов уже определены значения О-сложностей притом для каждого алгоритма определенны 3 значения О-сложностей(в среднем, в худшем, и в лучшем случаях)