Я пытаюсь выработать несколько предположений о сложности алгоритма, но каждый раз, когда я пытаюсь угадать, используя экспоненциальное время, мой метод угадывания / проверки кажется неудачным.Я уверен, что я делаю что-то нелепо неправильно, я просто не могу найти это сам.
Например, если у меня есть повторение T (n) = 2T (n-1) + T (n-2) + 1 , , где T (1) = 0 и T (2) = 1 .
Итерируя его несколько раз и подключая кюветы n = 3,4,5,6,7,8 ... мы можем наблюдать, что для любого значения n> = 8 T (n)>2 ^ n, поэтому 2 ^ n не является верхней границей.
Итак, зная эту информацию, я пытаюсь угадать, что T (n) = O (2 ^ n)
T (n) <= C (2 ^ n) </p>
2T (n-1) + T (n-2) +1 <= C (2 ^ n) </p>
2C (2 ^ (n-1)) + C (2 ^ (n-2)) + 1 <= c (2 ^ n) </p>
C (2 ^ n) -C (2 ^ n + 2 ^ (n-2)))> = 1
C (-2 ^ (n-2))> = 1
C> = 1 / (2 ^ (n-2)) |при n-> бесконечность выражение обращается в ноль
Не означает ли это, что мое предположение слишком велико?Однако я знаю, что это не так.Кто-нибудь может увидеть, где именно я убиваю теорию?Спасибо.