2015-05-04 2 views

ответ

3

Это больше похоже на теорему Акра-Bazzi: http://en.wikipedia.org/wiki/Akra%E2%80%93Bazzi_method#The_formula с k=1, h=0, g(n)=log n, a=(2)^{1/2}, b=1/2. В этом случае p=1/2 и вам необходимо оценить значение \int_1^x log(u)/u^{3/2} du. Вы можете использовать интеграцию по частям или символический интегратор. Вольфрам Альфа рассказывает мне, что неопределенный интеграл равен -2(log u + 2)/u^{1/2} + C, поэтому определенный интеграл равен 4 - 2(log x + 2)/x^{1/2}. Добавляя 1 и умножая на x^{1/2}, получаем T(x) = \Theta(5x^{1/2} - 2 log x - 4).

1

Согласно основной теореме, ф (п) должна быть многочленом, но здесь

f(n) = logn 

, который не является многочленом, поэтому он не может быть решена с помощью мастер-теоремы в соответствии с правилами. Я где-то читал о четвертом случае. Я должен также упомянуть об этом.

Он также обсуждается здесь: Master's theorem with f(n)=log n

Однако существует ограниченный «четвертый случай» для основной теоремы, которая позволяет ему обратиться к полилогарифмам.

Если

f(n) = O(nlogba logk n), then T(n) = O(nlogba log k+1 n). 

Другими словами, предположим, что у вас есть Т (п) = 2Т (п/2) + п войти п. f (n) не является многочленом, но f (n) = n log n и k = 1. Поэтому T (n) = O (n log2 n)

См. этот раздаточный материал для получения дополнительной информации: http://cse.unl.edu/~choueiry/S06-235/files/MasterTheorem-HandoutNoNotes.pdf

0

Master theorem имеют только ограничения на ваших a и b, которые хранятся для вашего случая. Тот факт, что a является иррациональным, и у вас есть log(n), так как ваш f(n) не имеет к этому отношения.

Так что в вашем случае ваш c = log2(sqrt(2)) = 1/2. Так как n^c растет быстрее, чем ваш журнал (n), сложность рекурсии равна O(sqrt(n)).

P.S. Решение Danyal ошибочно, поскольку сложность не является nlogn, и решение Эдварда Дулитта верно, также это излишний случай в этом простом случае.

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