Студопедия

КАТЕГОРИИ:


Архитектура-(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)

У у V V ' ' ' V




Рис. 14. Три последовательных шага сортировки фон Неймана, удлиняющих упорядоченные участки (сегменты): а) переход от семи сегментов к четы­рем; б) переход от четырех сегментов к двум; в) переход от двух сегментов к одному (массив полностью упорядочен).

то при к > 1 на следующем шаге мы будем иметь дело с к' таким, что к' <2т-1. В случае же сортировки фон Неймана ситуация такова, что если на каком-то шаге имеем к > 1 уже построенных сегментов и 2т-1 < к ^ 2т (это соответствует тому, что [log2 к] = т), то на сле­дующем шаге сегментов будет к' <к и 2т-2 <к' ^ 2т-1 (это соответ­ствует тому, что [log2 к']=т- 1). Поэтому функция L{k) = [log2 к], где к — текущее число построенных сегментов, убывает с каждым шагом ровно на единицу. Таким образом, число этапов слияния, или число перебросок сортируемых элементов из массива в массив, равно [log2 n ]. Это позволяет утверждать следующее:

Сложность сортировки фон Неймана по числу сравнений меньше, чем n\log2 п]; сложность по числу присваиваний равна n\log2 п].

В самом деле, каждый этап слияния, сопровождаемый переброс­кой элементов из массива в массив, требует п присваиваний. Число сравнений при каждом слиянии по крайней мере на единицу мень­ше, чем длина получаемого упорядоченного сегмента: известно, что число тех сравнений, которые априори могут потребоваться для слия­ния двух упорядоченных массивов, содержащих соответственно кит элементов, к^т, лежит в диапазоне от к до к + т - 1 (обе указанные границы достижимы).

Вновь обращаясь к примеру 3.1, мы видим, что, основываясь на сортировке фон Неймана, можно получить алгоритм построения вы­пуклой оболочки данных п точек координатной плоскости, имеющий сложность O (n log n) в худшем случае по общему числу операций.

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


82 Глава 3. Оценивание числа шагов (итераций) алгоритма

В этих двух последних примерах значения функции L возникали из сравнений размера n с элементами некоторой последовательности sk, k = 0,1,... (в обоих случаях было sk = 2k). В примере 9.2 удобно бы­ло считать, что L{n) = k, если sk-1^n<sk, а в примере 9.3 — если sk-1 <n^sk.

Типичный итерационный алгоритм содержит цикл, в котором на­бор v начальных величин преобразуется в набор v ', затем v преобра­зуется в v " и т. д. Функция L, которую мы подбираем, должна прини­мать неотрицательные значения и быть определенной либо на самих наборах величин, либо на их размерах; в обоих случаях функция долж­на убывать по ходу выполнения алгоритма:

L{v)>L{v')>L{v")>...

в первом случае, или

L (|| v ||) >L (|| v /||) >L (|| v //||) >...

во втором. Значение L (v) или соответственно L (|| v ||) дает верхнюю границу для числа шагов цикла. г

Заметим попутно, что, исходя из установленной в примере 9.2 сложности бинарного поиска, мы сразу можем получить верхнюю оценку

T B(n)^(n -l)riog2 n l (9.14)

для сложности по числу сравнений сортировки бинарными вставка­ми; мы используем для обозначения этой сортировки букву B, от английского слова binary—бинарный. По числу перемещений слож­ность этой сортировки квадратична, здесь эта сортировка уступает сортировке фон Неймана. Пространственную сложность сортировки бинарными вставками можно считать равной нулю (все делается на том же месте), а для сортировки фон Неймана эта сложность есть n.

Пример 9.4. Число итераций численных алгоритмов тоже часто оценивают сравнением размеров данных, соответствующих текущим итерациям, с элементами последовательности, которая может иметь, например, вид qn или q 2 n (q < 1), n = 0,1,..., и т.д. Этим способом

1 Такую функцию можно назвать функцией Ляпунова цикла, подразумевая аналогию с функцией, убывающей вдоль решения обыкновенного дифференциального уравнения (аналогия принадлежит С.С.Лаврову, см. [24, разд. 3.1.3]). Это не единственная ана­логия между дифференциальными уравнениями и циклическими алгоритмами и про­граммами. Например, понятие первого интеграла, или закона сохранения, сопостави­мо с понятием инварианта цикла и т.д.


§ 10. Качество оценок



получаются оценки числа итераций для классических методов (ал­горитмов) приближенного решения уравнений. Вспомним две такие оценки.

Пусть корень уравнения /(х) = 0 разыскивается на отрезке [а,Ъ], на котором функция /(х) непрерывна, /(а)/(Ь) «SO. Ошибка не долж­на превышать данного е > 0. При е^О и фиксированных f(x),a,b число итераций метода делений пополам есть

log,- + 0(1). (9.15)

Метод же Ньютона (касательных) требует

О flog log -) (9.16)

s

итераций при соблюдении ограничений на функцию /(х), обеспечи­вающих сходимость метода.




Поделиться с друзьями:


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


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



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




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