Я написал рекурсивный алгоритм, который работает в Θ(n)
.
Одним из рекуррентных уравнений для n > 0
является T(n) = T(v) + T(n - 1 - v) + c
, где c
— константа, а v
— переменная, которая может принимать значения в фиксированном диапазоне n > v > 0
.
Как мне дальше решить или правильно упростить это уравнение?
v
приближается к середине диапазона(0, n)
, сложность будетO(log(n))
, а когда значениеv
находится в углу этого диапазона, сложность будетO(n)
. - person Shubham   schedule 24.07.2016T(n) = T(n-L-1)+T(n-R-1)+c
, гдеL
— это левое поддерево (с корнем в левом дочернем узле), аR
— это правое поддерево (с корнем в правом дочернем узле) обрабатываемого корневого узла. ПосколькуR = n-1-L
иL = n-1-R
(гдеn
— общее количество узлов в поддереве, а1
— корневой узел), уравнение можно упростить доT(n) = T(n-L-1) + T(n-(n-1-L)-1) + c = T(n-L-1) + T(L) + c
, что эквивалентноT(n) = T(R) + T(n-1-R) + c
. - person George   schedule 25.07.2016