Возникает вопрос:Решение Т (п) = √2 * Т (п/2) + журнал п, используя теорему мастер
T(n) = √2*T(n/2) + log n
Я не уверен, работает ли теорема здесь хозяин, и своего рода застрял ,
Возникает вопрос:Решение Т (п) = √2 * Т (п/2) + журнал п, используя теорему мастер
T(n) = √2*T(n/2) + log n
Я не уверен, работает ли теорема здесь хозяин, и своего рода застрял ,
Это больше похоже на теорему Акра-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)
.
Согласно основной теореме, ф (п) должна быть многочленом, но здесь
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
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, и решение Эдварда Дулитта верно, также это излишний случай в этом простом случае.