Основная теорема для быстрой сортировки в худшем случае

Я знаю, как вычислить основную теорему, и мне удалось вычислить ее для лучшего и среднего случая. T(n) = 2T(n/2) + Theta(n)

Уравнение наихудшего случая - T(n) = T(n-1) + Theta(n). Если я прав, a равно 1, b равно n / (n-1) и f (n) равно n. Но как мне выбрать правильный случай основной теоремы и получить наихудшую временную сложность Theta (n ^ 2)?

Спасибо!


person phibiz    schedule 04.07.2020    source источник
comment
Вы не можете. Основная теорема не справляется с такого рода повторениями.   -  person David Eisenstat    schedule 04.07.2020
comment
Рекуррентное соотношение для среднего случая - это не T (n) = 2T (n / 2) + Theta (n), а T (n) = 1 / n sum (T (i) + T (ni-1), я = 0 ... п-1) + тета (п)   -  person Paul Hankin    schedule 04.07.2020
comment
Нет, этот метод не имеет смысла применять к этому. Вы читали страницу в Википедии о быстрой сортировке? Анализ сложности прямо здесь.   -  person Paul Hankin    schedule 06.07.2020
comment
Просто удалил свой комментарий, потому что нашел его ...   -  person phibiz    schedule 06.07.2020


Ответы (1)


Как отметил @DavidEisenstat в комментариях, основная теорема не применяется к повторению, которое вы здесь придумали.

Чтобы дать некоторый контекст относительно того, почему это так - основная теорема специально разработана для случая, когда

  • количество подзадач постоянно, и
  • размеры подзадач уменьшаются геометрически.

В этом случае второе требование не выполняется, так как при повторении размер проблемы уменьшается линейно, а не геометрически.

Вы правы, однако, что повторение решает Θ (n 2). Чтобы понять, почему, обратите внимание, что если вы развернете повторение, вы получите, что стоимость

Θ(n + (n-1) + (n-2) + ... + 2 + 1)

= Θ(n(n+1)/2)

= Θ (n 2).

Надеюсь это поможет!

person templatetypedef    schedule 04.07.2020