Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Временная сложность T(N)

Примем для простоты, что все операции (присваивание, добавление 1 при счёте, выборка из множества символа или элемента либо их занесение в множество, конкатенация элемента и символа, вывод элемента множества на печать либо экран) выполняются за единицу времени. Тогда можно считать, что основное время тратится на формирование подмножеств QL и Q’L, причём на Q’L примерно вполовину меньше. Поэтому

T(N)==2N-2+2N-1-1@

@1.5*2N-1 = O(2N).

Итак, оценкой временной сложности является T(N) = O(2N).

Ёмкостная сложность Е(N)

В худшем случае, если в памяти хранятся все подмножества QL и Q’L (объёмом памяти, занимаемым простыми переменными и параметрами цикла, а также исходным множеством М, пренебрегаем), оценка ёмкостной сложности определяется величиной Е(N) = O(2N). Если же хранить в памяти только текущее подмножество Q’L, а по нему формировать элементы подмножества QL и тут же их выводить, затем формировать новое подмножество Q’L, при этом исключая особые элементы в подмножестве QL, то оценкой ёмкостной сложности будет Е(N) = O(СRN-1), где R=](N-1)/2[ - целая часть дроби (N-1)/2. Действительно, максимальное количество элементов содержит подмножество, длина элементов которого равна округлённо половине числа символов без 1 в множестве М.

Итак, оценкой ёмкостной сложности является T(N) = O(СRN-1).

 


Заключение

 

При разработке эффективных алгоритмов необходимо использовать как структуры высокого уровня (списки, очереди, стеки), так и мощную технику рекурсии и динамического программирования. Важными являются приёмы общего вида “разделяй и властвуй” и “балансировка”. Существуют и другие методы повышения эффективности алгоритмов [2, 10, 13]. Разработчик алгоритмов должен изучить задачу с разных точек зрения, пока не убедится, что получил алгоритм, наиболее подходящий для его целей.

Полезными являются вопросы к основным этапам полного построения алгоритма, сформулированные в подразд. 4.4.1.

Для анализа построенного алгоритма важно уметь применять формулы, соотношения и асимптотики комбинаторики.

 

Контрольные вопросы. Упражнения

 

1. Каковы достоинства рекурсии? Каковы её недостатки? Когда целесообразно её применение?

2. Чем отличается рекурсивное построение алгоритма от итера-ционного? В каких случаях целесообразно применение итерационных алгоритмов?

3. Постройте рекурсивный и нерекурсивный алгоритмы для пере-мещений дисков на свободный стержень в задаче “Ханойские башни” (см. подразд. 1.3.2).

4. Составьте списки констант, переменных, массивов и процедур с расшифровкой их функционального назначения для задачи подразд. 4.4.2. Докажите, что если S0 – количество особых элементов, то S1=S-S0=.

 


[1] Под ²состоянием² понимаются адрес текущей команды и значения всех переменных.

[2] Недетерминированные алгоритмы не являются вероятностными; они являются алгоритмами, которые могут находиться одновременно во многих состояниях.

<== предыдущая лекция | следующая лекция ==>
Реализация алгоритма | В.1. Интуитивное определение алгоритма
Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 398; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.