Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ot_tak....doc
Скачиваний:
21
Добавлен:
25.11.2019
Размер:
549.89 Кб
Скачать

66. Построение кратных циклов.

Структура алгоритма, в котором внутри цикла находится другой цикл, называется кратным или вложенным циклом. Глубина вложения циклов может быть любой.

67. Задача сортировки. Сортировка прямым выбором.

Сортировкой в информатике называется переупорядочение рассматриваемых объектов по некоторому признаку или системе признаков. Например, упорядочение слов по алфавиту называется лексикографической сортировкой.

Существует три базовых способа сортировки массивов: прямым выбором, прямыми вставками и обменная, а также больше количество их модификаций.

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

68. Понятие верификации алгоритмов. Инварианты циклов.

Инвариантом цикла называется выражение, значение которого остается постоянным во время всех выполнений тела цикла.

Для одного и того же цикла можно построить несколько инвариантов. Желательно подобрать такой инвариант, который связан с конечной целью выполнения цикла.

Если такой инвариант существует и, кроме того, показано, что цикл выполняется конечное число раз, то можно утверждать, что алгоритм правильный и результаты его выполнения являются верными искомыми результатами. Такие рассуждения называются верификацией алгоритма

В стандартных операторах цикла while B do S требование конечности означает, что после конечного количества проходов по циклу условие B должно стать ложным. Для доказательства оканчиваемости с циклом обычно связывается некоторая ограниченная целочисленная убывающая функции или последовательность, элементы которой зависят от переменных программы, и показывается, 1) что ее начальное значение или начальный элемент положительны и при этом B=true; 2) при каждом выполнении цикла значение функции уменьшается (происходит переход к следующему элементу последовательности); 3) при достижении конечного значения (элемента последовательности) (обычно 0 или -1) условие В=false

69. Сложность алгоритмов. Классы сложности р и ехр.

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

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

Практически важный аспект анализа сложности связан с классификацией алгоритмов по типу зависимости T(V) по скорости ее роста. Существуют алгоритмы, в которых T(V) растет линейно, квадратично, имеет кубическую зависимость и т.д. Такие алгоритмы принято называть полиномиальными или алгоритмами с полиномиальной сложность и говорить, что алгоритм относится к классу сложности P. Существую алгоритмы, временная сложность которых растет быстрее полинома любой степени, как c некоторым основанием a. Такие алгоритмы принято называть алгоритмами с экспоненциальной сложностью и говорить, что алгоритм относится к классу сложности EXP.

В качестве образцов скорости роста можно взять следующий набор функций, следующую шкалу сложности алгоритмов:

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