Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
abramov_s_a_lekcii_o_slozhnosti_algoritmov.doc
Скачиваний:
136
Добавлен:
11.05.2015
Размер:
2.74 Mб
Скачать

Глава 2. Сложность в среднем

Каждая из сложностей в среднем как по числу сравнений, так и по числу перемещений для двух вариантов сортировки простыми встав­ками (всего четыре сложности) есть n + O{n); каждая из сложно­стей в среднем по общему числу сравнений и перемещений для двух вариантов этой сортировки (всего две сложности) есть n-+O(n).

Можно вспомнить, что в примере 1.4, в котором мы рассматрива­ли для двух вариантов сортировки простыми вставками их сложности в худшем случае по суммарному числу сравнений и перемещений, на­блюдалась непохожая ситуация, чему имеется, повторимся, простое объяснение: в отличие от (6.8), равенство шах(? + т?) = шах £ + шах tj, вообще говоря, места не имеет.

Общая формулировка установленного нами соотношения:

Теорема 6.1. Сложность в среднем некоторого алгоритма по сум­марному числу операций нескольких различных типов равна сумме сложностей в среднем этого алгоритма по числу операций каждого типа в отдельности.

Среди наиболее элементарных сортировок мы пока рассмотрели сложность в среднем только для сортировки простыми вставками. Сразу же можно добавить, что для сортировки выбором ее сложности по числу сравнений в среднем и в худшем случае совпадают, так как число сравнений однозначно определяется длиной n массива. Число сравнений на i-м этапе (i-м просмотре массива) пузырьковой сорти­ровки равно n i. Не сталкиваясь с большими трудностями, можно показать (см. задачу 38), что математическое ожидание s{n) числа просмотров массива есть

k! kn~k n

х—1 k k n ~k

2_j ^Г~ • (6.9)

n!

k=o

Очевидно, что s(n)<n. С другой стороны,

у^ k! kn-k ху(n-1)!k_1уk_n + 1 2-1 n! ~~~2-i n! nZj 2 "

k=0 k=0 k=0

Поэтому s(n)^n тг— = Z-. Мы имеем

2

n-1

2

и s(n) =Θ(n). Из этого следует, что сложность в среднем по числу сравнений пузырьковой сортировки квадратична.

^s{n)<n

§ 7. Пример медленного роста сложности в среднем

53

Сложности в среднем по числу сравнений пузырьковой сортиров­ки, сортировок выбором и простыми вставками имеют одинаковый порядок со сложностями этих же сортировок в худшем случае (до­пускают оценку в(п2)).

§ 7. Пример медленного роста сложности в среднем в сравнении со сложностью в худшем случае

Следующий пример показывает, что при п > оо сложность в среднем может расти существенно медленнее, чем сложность в худшем случае.

Пример 7.1. Рассмотрим сложность в среднем fQS(n) быстрой сор­тировки по числу сравнений. Будем считать, что в качестве разбиваю­щего элемента всегда выбирается первый элемент сортируемой части массива. Введем случайную величину Е,п на П„, равную числу срав­нений быстрой сортировки для а е Пп (в этом смысле £п(а) = CTqs{a)).

Имеем

fQS(n) = E?n = ^y J] £п(а).

Введем разложение

Пп=Кп +Кп+---+Кп>

где событию К1п принадлежат все те перестановки длины п, для кото­рых разбивающий элемент занимает i-ю позицию после завершения разбиения. В силу предложения 6.1(i) (видно, что К[ = FJ;1 событие состоит в том, что 1-й элемент перестановки равен i), получаем

Pп(7ф = -, i = l,2,..., п.

Разбиение перестановки а (первый этап быстрой сортировки) порож­дает две перестановки а'еП- и а"еП-. В соответствии с этим определим еще две случайные величины

£'п(а) = ^(аО, Оа) = Cn-ifa"),

где i — номер позиции, которую занимает разбивающий элемент по­сле разбиения. По формуле полного математического ожидания

п п

E?п=2 E(?„|1фPпаф=^(п -1 + E(?;Х) + E(?;х))±;

1=1 1=1

54

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