Exponenciación binaria: Cómo calcular rápidamente la potencia de un número
Un problema muy común es el de calcular la potencia de un número
La idea
Sea
potencia(b, n):
// Caso base
Si es es nulo:
retornar 1
Si e es par:
retornar potencia(b*b, n/2)
Si e es impar:
retornar b * potencia(b, n-1)
Complejidad temporal
La exponenciación binaria es mucho mejor que la lineal, sobretodo si se implementa de forma iterativa y usa con exponentes grandes. Se puede demostrar que ejecuta
Bibliografía
Introduction to algorithms, 3rd edition