Implementaciones de algoritmos de búsqueda en Python (2023)

Implementar la búsqueda siempre es un desafío, pero no imposible.

En la vida real, buscaremos sin ningún patrón. Simplemente vamos a los lugares donde pensamos que podría colocarse. No seguimos ningún patrón en la mayoría de los casos.

¿Funciona lo mismo en el mundo de la programación?

¡No! tiene que haber algún patrón para buscar cosas en los programas. Veremos algunos algoritmos que siguen diferentes patrones de búsqueda en este artículo.

Existen múltiples algoritmos que podemos encontrar en el mundo de la programación. Vamos a discutir los algoritmos más importantes y más utilizados en este artículo. Y el resto de los algoritmos será muy fácil de aprender.

La búsqueda se refiere a buscando un elemento en la matrizen este articulo.

Vamos a verlos uno por uno.

Linear Search

El nombre sugiere que elalgoritmo de búsqueda linealsigue ellinealpatrón para buscar los elementos en una matriz. El algoritmo comienza a buscar el elemento desde el principio de la matriz y se mueve hasta el final hasta que encuentra el elemento. Detiene la ejecución del programa cuando encuentra el elemento requerido.

Ilustremos elalgoritmos de búsqueda linealcon algunas ilustraciones geniales para una mejor comprensión del algoritmo.

Implementaciones de algoritmos de búsqueda en Python (1) Implementaciones de algoritmos de búsqueda en Python (2) Implementaciones de algoritmos de búsqueda en Python (3) Implementaciones de algoritmos de búsqueda en Python (4) Implementaciones de algoritmos de búsqueda en Python (5) Implementaciones de algoritmos de búsqueda en Python (6) Implementaciones de algoritmos de búsqueda en Python (7)

Si observa atentamente el patrón de búsqueda, encontrará que el tiempo necesario para la ejecución del programa será O (n)en el capítulo respecto a la peor de los casos. Tenemos que considerar la complejidad temporal del peor caso de los algoritmos a analizar. Por lo tanto, la complejidad temporal del algoritmo esO (n).

Veamos la implementación del algoritmo de búsqueda lineal.

Implementación de búsqueda lineal

Ahora, conoce bien el algoritmo de búsqueda lineal. Es hora de ensuciarnos las manos con algún código. Veamos primero los pasos para implementar la búsqueda lineal. Entonces intentas codificarlo. No se preocupe incluso si no puede; Le proporcionaré el código después.

Veamos los pasos para implementar el algoritmo de búsqueda lineal.

  • Inicialice una matriz de elementos (sus números de la suerte).
  • Escribe una función llamadaelemento_búsqueda, que acepta tres argumentos, matriz, longitud de la matriz y elemento a buscar.
  • elemento_búsqueda (arr, n, elemento):
    • Itere sobre la matriz dada.
      • Compruebe si el elemento actual es igual al elemento requerido.
      • Si es así, regresa Edición colaborativa.
    • Después de completar el ciclo, si la ejecución todavía está en la función, entonces el elemento no está presente en la matriz. Por lo tanto volver Falso.
  • Imprime el mensaje según el valor de retorno de la funciónelemento_búsqueda.

Finalmente, escriba el código con la ayuda de los pasos anteriores para implementar el algoritmo de búsqueda lineal.

¿Completaste la implementación del algoritmo de búsqueda lineal? Yo espero que sí. Si completó, verifique con el siguiente código.

Si no lo completó, no se preocupe; vea el código a continuación y aprenda cómo lo implementamos. Lo conseguirás sin mucho esfuerzo.

## searching functiondef search_element(arr, n, element):## iterating through the arrayfor i in range(n):## checking the current element with required elementif arr[i] == element:## returning True on matchreturn True## element is not found hence the execution comes herereturn Falseif __name__ == '__main__':## initializing the array, length, and element to be searchedarr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]n = 10element_to_be_searched = 6# element_to_be_searched = 11if search_element(arr, n, element_to_be_searched):print(element_to_be_searched, "is found")else:print(element_to_be_searched, "is not found")

Primero, ejecute el programa con un elemento que esté presente en la matriz. Y luego, ejecútelo con un elemento que no esté presente en la matriz.

La complejidad temporal del algoritmo de búsqueda lineal esO (n).

¿Podemos reducirlo un poco más con diferentes patrones?

Sí, podemos. Vamos a verlo.

Binary Search

El Body Roller de algoritmo de búsqueda binariasiempre comprueba el elemento medio de la matriz. Este algoritmo busca el elemento en un matriz ordenada.

El Body Roller de algoritmo de búsqueda binaria itera sobre la matriz y verifica el elemento del medio, si lo encuentra, luego detiene el programa. De lo contrario, si el elemento intermedio es menor que el elemento requerido, omite la parte izquierda de la matriz del elemento intermedio de la búsqueda. De lo contrario, si el elemento intermedio es mayor que el elemento requerido, omite la parte derecha de la matriz del elemento intermedio de la búsqueda.

En cada iteración, el algoritmo de búsqueda binaria reduce el área para buscar el elemento. Por tanto, el número de comprobaciones es menor que el número de comprobaciones realizadas en el algoritmo de búsqueda lineal.

Las ilustraciones nos ayudan a comprender mejor algoritmo de búsqueda binaria. Vamos a comprobarlos.

Implementaciones de algoritmos de búsqueda en Python (8) Implementaciones de algoritmos de búsqueda en Python (9) Implementaciones de algoritmos de búsqueda en Python (10) Implementaciones de algoritmos de búsqueda en Python (11) Implementaciones de algoritmos de búsqueda en Python (12)

La complejidad temporal del algoritmo de búsqueda binaria esO (log n). En cada iteración, la longitud del área de búsqueda se reduce a la mitad. Se está reduciendo exponencialmente.

Implementación de búsqueda binaria

Primero veremos los pasos para implementar el algoritmo de búsqueda binaria y luego el código. Veamos los pasos para completar la implementación del algoritmo de búsqueda binaria.

  • Inicialice la matriz con elementos (sus números de la suerte)
  • Escribe una función llamadaelemento_búsqueda, que acepta tres argumentos, matriz ordenada, longitud de la matriz y elemento a buscar.
  • search_element (sorted_arr, n, elemento):
    • Inicializar la variable de índiceipara la iteración de matrices.
    • A continuación, inicialice dos variables para mantener el área de búsqueda de la matriz. Aquí, los llamamos como comienzo e final como indican índices.
    • Iterar hasta que i es menor que la longitud de la matriz.
      • Calcule el índice medio del área de búsqueda usando el comienzo e final valores. Eso será (inicio + fin) // 2.
      • Compruebe si el elemento indexado del medio del área de búsqueda es igual al elemento requerido o no.
      • Si es así, regresaEdición colaborativa.
      • De lo contrario, si el elemento indexado del medio es menor que el elemento requerido, mueva elcomienzoíndice del área de búsqueda paramedio + 1.
      • De lo contrario, si el elemento indexado del medio es mayor que el elemento requerido, mueva el final índice del área de búsqueda paramedio - 1.
      • Incrementar el índice de la matrizi.
    • Después de completar el ciclo, si la ejecución todavía está en la función, entonces el elemento no está presente en la matriz. Por lo tanto volver Falso.
  • Imprime el mensaje según el valor de retorno de la funciónelemento_búsqueda.

Intente escribir el código de forma similar a la implementación del algoritmo de búsqueda lineal.

...

¿Recibiste el código?

Sí, compárelo con el siguiente código. No, no se preocupe; Comprenda la implementación con el siguiente código.

## searching functiondef search_element(sorted_arr, n, element):## array index for iterationi = 0## variables to track the search area## initializing them with start and end indexesstart = 0end = n - 1## iterating over the arraywhile i < n:## getting the index of the middle elementmiddle = (start + end) // 2## checking the middle element with required elementif sorted_arr[middle] == element:## returning True since the element is in the arrayreturn Trueelif sorted_arr[middle] < element:## moving the start index of the search area to rightstart = middle + 1else:## moving the end index of the search area to leftend = middle - 1i += 1return Falseif __name__ == '__main__':## initializing the array, length, and element to be searchedarr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]n = 10element_to_be_searched = 9# element_to_be_searched = 11if search_element(arr, n, element_to_be_searched):print(element_to_be_searched, "is found")else:print(element_to_be_searched, "is not found")

Pruebe el código con diferentes casos donde el elemento está presente y no presente en algunos casos.

Para Concluir

El Body Roller de algoritmo de búsqueda binariaes mucho más eficiente que elalgoritmo de búsqueda lineal. Necesitamos ordenar la matriz para que el algoritmo de búsqueda binaria no sea el caso en el algoritmo de búsqueda lineal. La clasificación lleva algún tiempo. Pero, el uso de algoritmos eficientes para clasificar formará una buena combinación con el algoritmo de búsqueda binaria.

Ahora, tiene un buen conocimiento de los algoritmos más utilizados en Python.

A continuación, descubra algunos de los software de búsqueda autohospedado.

Codificación feliz 🙂 🧑‍💻

FAQs

¿Cuáles son los algoritmos de búsqueda en Python? ›

Hay muchos tipos de algoritmos de búsqueda posibles, como la búsqueda lineal, la búsqueda binaria, la búsqueda por salto, la búsqueda exponencial, la búsqueda de Fibonacci , etc. En este artículo, aprenderemos la búsqueda lineal y la búsqueda binaria en detalle con algoritmos, ejemplos y código Python.

¿Dónde se aplican los algoritmos de búsqueda? ›

Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento con ciertas propiedades dentro de una estructura de datos; por ejemplo, ubicar el registro correspondiente a cierta persona en una base de datos, o el mejor movimiento en una partida de ajedrez.

¿Cómo usar la búsqueda en Python? ›

En Python, search() es un método del módulo re. re.search(patrón, cadena ): Es similar a re. match() pero no nos limita a encontrar coincidencias solo al comienzo de la cadena.

¿Cuáles son los tipos de algoritmos de búsqueda? ›

Para buscar un dato en un vector existen dos métodos: búsqueda secuencial o lineal y búsqueda binaria. El primero es más fácil de implementar pero puede tomar más tiempo, el segundo es más eficiente, pero requiere que el vector esté ordenado.

¿Qué algoritmo de búsqueda es mejor? ›

El algoritmo de búsqueda binaria funciona según el principio de divide y vencerás y se considera el mejor algoritmo de búsqueda porque es más rápido de ejecutar.

¿Qué es un algoritmo en Python? ›

Modo avanzado: Un algoritmo es el conjunto de pasos necesarios que, realizados en el orden marcado por el mismo, nos conducirán a la solución del problema. Modo terrestre: Un algoritmo es una especie de “receta” que nos dice qué debemos hacer y cuándo para realizar algo.

¿Cómo funciona un algoritmo de búsqueda? ›

Para brindarle la información más útil, los algoritmos de búsqueda analizan muchos factores y señales, incluidas las palabras de su consulta, la relevancia y usabilidad de las páginas, la experiencia de las fuentes y su ubicación y configuración . El peso aplicado a cada factor varía según la naturaleza de su consulta.

¿Cómo funciona el algoritmo de búsqueda? ›

Un algoritmo es un conjunto de operaciones que busca resolver un problema determinado a través de secuencias lógicas. Este procedimiento esquemático emplea una serie de pasos, como una receta, los cuales pueden ser formulados de diferentes maneras cuidando que en dicha combinación no se produzca una ambigüedad.

¿Qué hace un algoritmo de búsqueda? ›

Los algoritmos de búsqueda ayudan a frenar el posicionamiento de sitios que usan malas prácticas. Cada algoritmo cuenta con directrices que hacen posible que los sitios logren o este posicionamiento, obligándolos a mejorar su calidad.

¿Cuál es el algoritmo de búsqueda más rápido en Python? ›

La complejidad temporal de la búsqueda binaria en Python es mejor que la búsqueda lineal porque no necesitamos buscar en toda la matriz. Inteligentemente dividimos la matriz en sub-matrices más pequeñas y obtenemos nuestra respuesta. Entonces, la búsqueda binaria es un algoritmo más rápido y eficiente, pero solo funciona en la matriz ordenada.

¿Cómo crear un motor de búsqueda con Python? ›

Para comenzar , escriba django-admin startproject python_search_engine en la terminal. CD en el directorio python_search_engine. Ejecute el motor python3 manage.py startapp, esto creará una aplicación llamada motor. Ahora necesitaremos configurar nuestro proyecto django.

¿Qué estructura de datos es mejor para buscar en Python? ›

Los dos tipos principales de búsqueda en la estructura de datos son la búsqueda secuencial/lineal, donde cada elemento se verifica secuencialmente, y la búsqueda binaria , que es más rápida y funciona dividiendo el conjunto de datos por la mitad y comparando el elemento central con el valor objetivo hasta que se encuentra una coincidencia. encontró.

¿Qué es un algoritmo 3 ejemplos? ›

Se puede entender un algoritmo como una secuencia de pasos finitos bien definidos que resuelven un problema. Por ejemplo, la ejecución de tareas cotidianas tan simples como cepillarse los dientes, lavarse las manos o seguir el manual de instrucciones de armado de un mueble, se pueden ver como un algoritmo.

¿Qué es un buscador 4 ejemplos? ›

Los buscadores son esos sistemas informáticos que los usuarios emplean cuando navegan por la web para buscar las páginas que les pueden proporcionar la información que desean. Ejemplos de buscadores son Google, Bing, Yahoo, Baidu, DuckduckGo...

¿Cuáles son las técnicas de búsqueda? ›

Las técnicas de búsqueda son una serie de esquemas de representación del conocimiento, que mediante diversos algoritmos nos permite resolver ciertos problemas desde el punto de vista de la I.A. ¿Qué son las técnicas de búsqueda y cuáles son sus elementos?

¿Qué es el algoritmo de búsqueda binaria en Python? ›

La búsqueda binaria es un algoritmo de búsqueda que se utiliza para buscar un elemento de una matriz ordenada . No se puede utilizar para buscar en una matriz no ordenada. La búsqueda binaria es un algoritmo eficiente y es mejor que la búsqueda lineal en términos de complejidad temporal. La complejidad temporal de la búsqueda lineal es O(n).

¿Qué son los algoritmos de búsqueda y recorrido? ›

El algoritmo de recorrido en profundidad o DFS, explora sistemáticamente las ramas o aristas del grafo de manera que primero se visitan los nodos o vértices adyacentes a los visitados más recientemente. De esta forma se va “profundizando” en el grafo, es decir, alejándose progresivamente del nodo inicial [2].

¿Qué son los algoritmos de ordenamiento y búsqueda? ›

El objetivo de los algoritmos de ordenamiento, es ordenar una lista de datos para realizar búsquedas o cualquier otra operación que se requiera con estas, a continuación se nombran los algorítmos más básicos y comunes para realizar esto.

¿Qué es la búsqueda y los tipos de búsqueda? ›

La búsqueda es el proceso de encontrar una pieza particular de información o datos de un conjunto más grande de datos o información . Hay varios tipos de técnicas de búsqueda, que incluyen búsqueda lineal, búsqueda binaria, búsqueda hash y búsqueda de árbol.

Top Articles
Latest Posts
Article information

Author: Tyson Zemlak

Last Updated: 25/01/2024

Views: 5231

Rating: 4.2 / 5 (43 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Tyson Zemlak

Birthday: 1992-03-17

Address: Apt. 662 96191 Quigley Dam, Kubview, MA 42013

Phone: +441678032891

Job: Community-Services Orchestrator

Hobby: Coffee roasting, Calligraphy, Metalworking, Fashion, Vehicle restoration, Shopping, Photography

Introduction: My name is Tyson Zemlak, I am a excited, light, sparkling, super, open, fair, magnificent person who loves writing and wants to share my knowledge and understanding with you.