САОД Методы анализа, страница 6
Описание файла
Документ из архива "САОД Методы анализа", который расположен в категории "". Всё это находится в предмете "введение в специальность" из 1 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "введение в специальность" в общих файлах.
Онлайн просмотр документа "САОД Методы анализа"
Текст 6 страницы из документа "САОД Методы анализа"
а) в которых нет одинаковых элементов;
б) в которых два одинаковых элемента находятся рядом и расположены в самом конце массива.
В подобных случаях при каждом повторе внутреннего цикла в нашем алгоритме выполняется одна операция сравнения. При этом переменная цикла j последовательно принимает значения от i + 1 до n – 1. Внутренний цикл каждый раз повторяется заново при каждом выполнении внешнего цикла. При этом переменная внешнего цикла i последовательно принимает значения от 0 до n – 2. Таким образом, получаем:
Обратите внимание, что этот результат можно было легко предсказать: в рассматриваемом алгоритме в самом худшем случае для массива, состоящего из n элементов, нужно сравнить между собой все (n–1)n /2 различных пар элементов.
Пример 3. Для двух заданных матриц А и В размером n х n определите временную эффективность алгоритма их умножения С = АВ, основанного на определении этой операции. По определению С – это матрица размером n х n, элементы которой являются скалярными произведениями соответствующих строки матрицы А ни столбца матрицы В, как показано ниже.
АЛГОРИТМ MatrixMultiplication (A [0..n – 1, 0.. n – 1],
В [0.. n – 1, 0.. n – 1])
// Выполняется умножение двух квадратных матриц
// размером n х n. Используется алгоритм,
// основанный на определении этой операции
// Входные данные: две квадратные n х n матрицы А к В
// Выходные данные: матрица С = АВ
BEGIN
RETURN C
END
В этом алгоритме размер входных данных соответствует размеру матрицы n. Во внутреннем цикле алгоритма выполняются две арифметические операции: умножение и сложение. В принципе, в качестве основной операции алгоритма можно выбрать как одну, так и другую операцию. Мы рассмотрим случай, когда в качестве основной выбрана операция умножения. Заметьте, что для рассматриваемого алгоритма не обязательно отдавать предпочтение одной из этих операций, поскольку на каждом шаге внутреннего цикла каждая из них выполняется только один раз. Поэтому, подсчитав, сколько раз выполняется одна из операций, мы автоматически подсчитываем и количество выполнения другой операции. А теперь давайте составим сумму для общего числа операций умножения f(n), выполняемых в алгоритме. Поскольку это число зависит только от размера исходных матриц, не требуется отдельно рассматривать наихудший, типичный и наилучший случаи.
Вполне очевидно, что на каждом шаге внутреннего цикла алгоритма выполняется только одна операция умножения. При этом значение переменной цикла k последовательно изменяется от нижней границы 0 до верхней границы n – 1. Поэтому количество операций умножения, выполняемых для каждой пары значений переменных i и j, можно записать следующей тройной суммой:
Для вычисления значения этой суммы воспользуемся формулами из следующего раздела:
Рассматриваемый алгоритм достаточно прост.
Время выполнения алгоритма на конкретном компьютере можно оценить с помощью следующего произведения:
— время выполнения одной команды умножения на рассматриваемом компьютере. Чтобы получить более точную оценку, необходимо также учесть время выполнения команд сложения:
где са ~ время выполнения одной команды сложения. Обратите внимание, что полученная оценка отличается от прежней только постоянным множителем, а не порядком роста.
1.3.10Формулы, использующиеся при анализе алгоритмов
Свойства логарифмов
В приведенных ниже формулах основание алгоритмов считается большей 1; его конкретная величина значения не имеет. Запись
lg a означает логарифм по основанию 10;
х и у — произвольные положительные числа.
Комбинаторика
1. Количество перестановок n-элементного множества:
2. Количество k-комбинаций n-элементного множества (сочетаний элементов из n):
3. Количество подмножеств n-элементного множества:
Значение суммы некоторого ряда
(эта сумма называется n-ым гармоническим числом и обозначается ; константа называется константой Эйлера)
Правила работы с суммами
Литература
-
Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. – М.: Мир, 1979.
-
Ахо А., Хопкрофт Дж., Ульман Дж. Структуры данных и алгоритмы. – М.: "Вильямс", 2001. – 384 с.
-
Бентли Д. Жемчужины творчества программистов. – М.: Радио и связь, 1990.
-
Вирт Н. Алгоритмы + структуры данных = программы. – М.: Мир, 1985.
-
Вирт Н. Алгоритмы и структуры данных. – М: Мир, 1989. – 360 с.
-
Грин Д., Кнут Д. Математические методы анализа алгоритмов. – М: Мир, 1987.
-
Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. – М.: Мир, 1981.
-
Дейкстра Э. Дисциплина программирования. – М: Мир, 1978.
-
Кнут Д.Е. Искусство программирования для ЭВМ. В 3-х томах. – М.: Мир, 1976.
-
Кнут Д.Е. Искусство программирования. В 3-х томах. – М.: "Вильямс", 2000.
-
Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: Построение и анализ. – М.: МЦНМО, 2005.
-
Лэгсам Й., Огенстайн М. Структуры данных для персональных ЭВМ. – М.: Мир, 1989. – 586с.
-
Оре О. Графы и их применение. – М.: Мир, 1965.
-
Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. – М.: Мир, 1980.
-
Сибуя М., Ямамото Т. Алгоритмы обработки данных. – М: Мир, 1986. – 218 с.
-
Успенский В.А., Семенов А.Л. Теория алгоритмов: основные открытия и приложения. – М.: Наука, 1987.
-
Харари Ф. Теория графов. – М: Мир, 1973.
-
Левитин А.В. Алгоритмы: введение в разработку и анализ.: Пер. с англ.– М.:Издательский дом «Вильямс», 2006. – 576.
Русскоязычные ресурсы InterNet
-
http://algo.4u.ru/
-
http://algolist.manual.ru/
-
http://alglib.chat.ru/
-
http://algo.do.ru/
-
http://hcinsu.chat.ru/
-
http://algolist.da.ru/
-
http://progstone.narod.ru/links/wantalgo.html
-
http://www.sevmashvtuz.edu/links/algorithms.html
© МГУПИ, 2009
_______________________________________________________________
Лицензия ЛР №_______ от _______ г.
Подписано к печати Формат 60х84 1/16 Бумага тип №3
Печать офсетная Усл. печ. л Тираж ___ экз.
_______________________________________________________________
Редакционно-издательский отдел
Отдел оперативной полиграфии МГУПИ
107996, Москва, ул. Стромынка, 20