получить сложность для алгоритма Карасубы?

Я видел вики-страницу: https://en.wikipedia.org/wiki/Karatsuba_algorithm, которая имеет рекуррентное соотношение для алгоритма Карацубы как:

T(n) = 3T(n/2) + cn + d

и с помощью мастер-алгоритма его временная сложность может быть получена как T(n) = O(n^log_2(3)). Я никогда раньше не работал с основной теоремой. Когда я прочитал это на странице вики, оказалось, что T(n) работает с вариантом 1, но откуда мы знаем, что cn (from T(n)), в котором c меньше, чем log_2(3)?


person Almas    schedule 22.04.2017    source источник


Ответы (1)


T(n) = 3T(n/2) + cn + d

c в cn - это не то же самое c, которое вы использовали бы для основной теоремы. Основная теорема имеет nc, cn здесь будет линейным, если n возводится в 1-ю степень, поэтому c = 1. Поскольку c = 1 ‹ log23 применяется первый случай.

person 夢のの夢    schedule 22.04.2017