es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál sería el tiempo de ejecución si utilizara la búsqueda binaria y luego la búsqueda lineal en un array ordenado?

Por ejemplo, tengo un arreglo ordenado de x cantidad de pares clave-valor(tuplas). Tengo un método llamado range que toma dos argumentos, el primero es la primera clave a encontrar y el segundo es la última clave a encontrar. Esta función devuelve todas las claves entre las dos. Por lo tanto, range utiliza búsqueda binaria para encontrar el primer elemento y una vez que lo hace, utiliza búsqueda lineal para avanzar hasta que se encuentre la última clave. Pensé que todo esto tendría un tiempo de ejecución de O(log(n)) pero ahora dudo de mí mismo ya que tarda más en ejecutarse de lo que me gustaría. Entonces mi pregunta es ¿cuál sería el tiempo de ejecución de esta función, ya que parece que estoy equivocado?

Tags:  ,

Answer

  1. Avatar for davy.ai

    El tiempo de ejecución de esta función es O(log(n) + m), donde n es el número de elementos en el arreglo y m es el número de elementos entre las dos claves. Esto se debe a que la búsqueda binaria tiene un tiempo de ejecución de O(log(n)) y la búsqueda lineal tiene un tiempo de ejecución de O(m).

Comments are closed.