En Análisis y diseño de algoritmos, utilizamos anotaciones asintóticas para mostrar la complejidad de ese algoritmo. Completixy es una medida de espacio y tiempo requerido por ese algoritmo. Para la Complejidad del tiempo usamos Big-Oh, Big-theta y Big-Omega.
Ahora, volviendo a su pregunta, la búsqueda binaria tiene una complejidad de tiempo O (log (n)), mientras que la búsqueda lineal tiene O (n).
¿Cómo?
- En un microprocesador 8085, ¿cómo podemos encontrar el número de ciclos de la máquina y el número de estados T de cualquier mnemónico dado?
- ¿Cómo se escriben los algoritmos de espacio?
- ¿Qué depara el futuro para los algoritmos genéticos y qué tan relevantes serán en 20 años?
- ¿Es necesario aprender Java antes de comenzar el curso de Estructuras de datos y Algoritmos en el IIT en Delhi?
- ¿Cómo se fragmentan los archivos en el hadoop en 64 MB o 128 MB? ¿Cuál es el algoritmo utilizado para fragmentar los archivos?
Búsqueda lineal: en la búsqueda lineal comenzamos desde un extremo y recorrimos o visitamos cada elemento, hasta que encontramos ese elemento buscado o nos quedamos sin la lista. Por lo tanto, si el tamaño de la lista es n , tomaría un máximo de n, y al menos 1 comparación. Entonces, para un caso promedio, el número de comparaciones es cercano a n. Podemos decir que la complejidad de la búsqueda lineal es O (n).
Búsqueda binaria: este algoritmo solo se puede usar en una lista ordenada. La idea detrás de la búsqueda binaria es dividir el problema en otros más pequeños. Dividimos la lista en dos partes desde el punto medio de la lista, y comparamos el punto medio con el elemento buscado. Ahora hay tres cosas que pueden suceder:
- Encontramos el elemento en el punto medio, lo cual es bueno.
- el punto medio es menor que el elemento buscado.
- el punto medio es mayor que el elemento buscado.
En casos posteriores, usamos la propiedad de que la lista está ordenada.
Si el elemento es mayor que el punto medio, entonces solo necesitamos buscar en la porción después del punto medio.
Si el elemento es menor que el punto medio, entonces solo necesitamos buscar en porciones antes del punto medio.
Al hacerlo, redujimos a la mitad el problema, y solo se necesita la mitad de la búsqueda. Si seguimos haciendo esto hasta que encontremos el elemento, podemos verlo cada vez comparamos En el punto medio, el problema se reduce a la mitad. Esto se puede mostrar mediante la función logarítmica de la base 2. La complejidad de Hemce para este algoritmo es O (log (n)).
Qué significa eso?
Significa que para una lista de 100 ítems , la búsqueda lineal tomaría 100 comparaciones, mientras que la búsqueda binaria tomará solo 7 (log (100) = 6. .. ~ 7).
Para una lista de 100,000,000 artículos. La búsqueda lineal tomará 100,000,000 de comparación y la búsqueda binaria tomará solo 27 de comparación.
Por lo tanto, podemos concluir que la búsqueda binaria es más eficiente que una búsqueda lineal.
Feliz codificación !!
Anshumaan Yadav 😉