Решение T (n) = 4T (n/2) +n ²

77
11

Я пытаюсь решить повторение с использованием метода подстановки. Рекуррентное соотношение:

T (n) = 4T (n/2) +n 2

Я предполагаю, что T (n) является Θ (nlogn) (и я уверен в этом из-за основной теоремы), и для того, чтобы найти верхнюю границу, я использую индукцию. Я попытался показать, что T (n) <= cn 2 logn, но это не сработало.

Я получил T (n) <= cn 2 logn +n 2 . Затем я попытался показать, что если T (n) <= c 1 n 2 logn -c 2 n 2 то это также O (n 2 logn), но это также не сработало, и я получил T (n ) <= c 1 n 2 log (n/2) -c 2 n 2 +n 2 '.

Как я могу решить эту проблему?

спросил(а) 2020-03-27T18:06:46+03:00 2 месяца назад
1
Решение
90


T(n) = 4T(n/2) + n2
= n2 + 4[4T(n/4) + n²/4]
= 2n2 + 16T(n/4)
= ...
= k⋅n2 + 4kT(n/2k)
= ...

Процесс останавливается, когда 2 k достигает n.
k = log 2 n
T(n) = O(n 2 logn)

ответил(а) 2020-03-27T18:18:49.029090+03:00 2 месяца назад
82

diagram of recursive calls

Вы можете переписать свое уравнение в нерекурсивной форме


Non-recursive form of T(n)

Ваше рекурсивное уравнение довольно просто: каждый раз, когда вы расширяете T (n/2), появляется только один новый термин. Таким образом, в нерекурсивной форме вы получите сумму квадратичных членов. Вам нужно только показать, что A (n) - log(n) (я оставляю его вам как простое упражнение).

ответил(а) 2020-03-27T18:06:46+03:00 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема