2015-08-17 4 views
0

Я не смог найти сложность этого рекуррентного соотношения:Найти сложность алгоритма?

T (N) = 2T (N/4) + N^0,51

+0

Я пробовал мастер-теорему, которая дает сложность как тета (n^0.51logn) –

+0

Учитывая значение p как 0, но я немного смущен о значении P, поэтому я задал этот вопрос здесь –

+2

Я думаю, O (n^0,51) ', потому что это рекуррентное отношение складывается в геометрическую прогрессию с шагом, равным« 2^(- 0,02) ». И из-за такого приближения к шагу «1» он выглядит как «O (n^0.51 * log (n))» на практике. –

ответ

4

Использование master theorem case 3 с:

a=2, b=4, c=0.51: 

И так 2*sqrt(n/4) < 2 * (n/4)^0.51, есть k<1, что условие регулярности применяется:

2 * (n/4)^0.51 < k * n^0.51 

И так log_b(a) = log_4(2) = 0.5 < 0.51 = c

Мы можем сделать вывод, что условия теорема 3, а по теореме T(n) - i n Theta(f(n)) = Theta(n^0.51)

4

Во-первых, найти точное выражение для I-го уровня нашего периодическое отношение.

Например:

1 уровень:

enter image description here

2 уровень:

enter image description here

...

я-й уровень:

enter image description here

Итак, теперь мы можем выразить T(n) следующим образом:

enter image description here

Правая сумма геометрической прогрессии уменьшается и сложность O(1).

Из-за этого результирующая сложность O(n^0.51).

+0

Хорошее, точное решение без теоремы магистра. –

Смежные вопросы