Изменения

Перейти к: навигация, поиск

Префикс-функция

1115 байт убрано, 14:35, 10 июня 2012
Время работы
===Время работы===
С помощью [[Амортизационный анализ|метода потенциалов]] можно показать, что время Время работы алгоритма составит <tex>O(n)</tex>. Потенциал величины Для доказательства этого потребуется новое обозначение <tex>kw_i</tex> связывается с текущим ее значением в алгоритме. Начальное значение этого потенциала равно нулю. На каждой итерации {{---}} количество итераций цикла <tex>while</tex> значение на <tex>k</tex> уменьшается, поскольку <tex>\pi(k) < ki</tex>-ом шаге. Поскольку Итоговое время работы алгоритма составит <tex>\pi(k) sum\ge 0limits_{i=2}^n w_i</tex> значение этой переменной не бывает отрицательным. Также значение Теперь стоит отметить, что <tex>k</tex> изменяется увеличивается на каждом шаге не более чем на 1 внутри тела цикла <tex>for</tex>. Поскольку перед входом в цикл выполняется <tex> k < i</tex> и поскольку единицу, значит максимально возможное значение переменной <tex>i</tex> увеличивается в каждой итерации цикла <tex>for</tex>, справедливость неравенства <tex>k < i</tex> сохраняется (подтверждая тот факт, что соблюдается также неравенство <tex>\pi(i) < i = n - 1</tex>). Каждое выполнение тела Внутри цикла <tex>while</tex> можно оплатить соответствующим уменьшение потенциальной функции, поскольку значение <tex>\pi(k) < k </tex>. Кроме этого значение потенциальной функции возрастает лишь уменьшается, а из предыдущего утверждения получается, что оно не более может уменьшиться больше, чем на 1, из-за этого [[Амортизационный анализ|амортизированная стоимость]] тела цикла <tex>for</tex> {{-n--}} <tex>O(1)</tex>. Так как всего раз, значит <tex>\sum\limits_{i=2}^n w_i \le n</tex> итераций, и поскольку конечное значение потенциальной функции по величине не меньше, чем ее начальное значение, полное время работы в наихудшем случае равно что дает итоговую оценку времени алгоритма <tex>O(n)</tex>.
== Литература ==
Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. {{---}} 2-е изд. {{---}} М.: Издательский дом «Вильямс», 2007. {{---}} С. 1296.
304
правки

Навигация