No dudes en divulgar nuestro espacio y códigos en tus redes, danos de tu ayuda para aumentar esta comunidad.
Solución:
No hay un análisis diferente de Wrt Big O entre estas dos versiones. ambos correrán O(logn)
si está escrito correctamente.
Ha habido preocupaciones en torno al programa recursivo con respecto a la pila de funciones que va a utilizar. Sin embargo, una vez que lo vea detenidamente, la versión recursiva es una recursión de cola. La mayoría de los compiladores modernos convierten la recursividad de la cola en un programa iterativo. Por lo tanto, no habrá ningún problema con respecto al uso de la pila de funciones.
Por lo tanto, ambos funcionarán con el mismo efficiency
.
Personalmente, me gusta el código recursivo. Es elegante, fácil y mantenible. La búsqueda binaria es un algoritmo notoriamente difícil de implementar correctamente. Incluso, la biblioteca Java tenía un error en la implementación.
Con respecto a complejidad del tiempométodos recursivos e iterativos ambos le darán O(log n)
complejidad de tiempo, con respecto al tamaño de entrada, siempre que implemente la lógica de búsqueda binaria correcta.
Concentrándose en complejidad del espacioel enfoque iterativo es más eficiente ya que estamos asignando una cantidad constante O(1)
de espacio para la llamada de función y espacio constante para asignaciones de variables.
Reseñas y valoraciones
Agradecemos que quieras asentar nuestro quehacer escribiendo un comentario y valorándolo te lo agradecemos.