Использовать дерево рекурсии. См. Последний пример дерева рекурсии в CLRS "Введение в алгоритм".
T (n) = T (n / 2) + T (n / 4) + T (n / 8) + n. Корень будет n (стоимость) и разделен на 3 рекурсии. Итак, дерево рекурсии выглядит следующим образом:
T (n) = n = n
T (n / 2) T (n / 4) T (n / 8) (n / 2) (n / 4) (n / 8)
T (n / 4) T (n / 8) T (n / 16) T (n / 8) T (n / 16) T (n / 32) T (n / 16) T (n / 32) T ( п / 64)
n---------------------------------> n
(n/2) (n/4) (n/8)--------------> (7/8)n
n/4 n/8 n/16 n/8 n/16 n/32 n/16 n/32 n/64)--------> (49/64)n
...
Самый длинный путь: левая левая ветвь = n -> n / 2 -> n / 4 -> ... -> 1
Самая короткая ветвь: самая правая правая ветвь = n -> n / 8 -> n-> 64 -> ... -> 1
Количество листьев (l): 3 ^ log_8 (n) n ^ 0.5
Посмотрите на дерево - до уровня log_8 (n) дерево заполнено, и затем, когда мы снижаемся, все больше и больше внутренних узлов отсутствуют. По этой теории мы можем дать оценку
T (n) = Big-Oh (Суммирование j = 0 до log_2 (n) -1 (7/8) ^ j n) = ... => T (n) = O (n).
T (n) = Биг-Омега (Суммирование j = 0 до log_8 (n) -1 (7/8) ^ j n) = ... => T (n) = Биг-Омега (n).
Следовательно, T (n) = Theta (n).
Вот пункты:
Т (н / 2) путь имеет наибольшую длину ...
Это не должно быть полное троичное дерево ... высота = основание журнала 2 из n & # листьев должно быть меньше, чем n ...
Надеюсь, вероятно, таким образом вы сможете решить проблему.