Временная сложность алгоритма, который вычисляет мощность
Я реализовал эту функцию psedocode Fastpower(), которая принимает два аргумента a и b и вычисляет ab (где a и b - положительные целые числа)
FastPower(a,b) :
if b = 1
return a
else
c := a*a
ans := FastPower(c,[b/2])
if b is odd
return a*ans
else return ans
end
Здесь [x] обозначает функцию этажа, то есть наибольшее целое число, меньшее или равное x.
Каково будет общее асимптотическое время выполнения вышеуказанного алгоритма (как функция от b)?
Кто-нибудь может мне помочь в этом? Я сталкиваюсь с трудностями в поиске общего асимптотического времени выполнения.
Заранее спасибо за ваше объяснение.