Introducción al algoritmo de búsqueda lineal: introducción y características [con ejemplos]

Publicado: 2021-06-22

Tabla de contenido

¿Qué es la búsqueda?

La búsqueda es el proceso de encontrar un elemento dado en una lista de elementos. Ayuda en la búsqueda de un registro en particular. Por lo tanto, es una técnica de identificación del lugar de un elemento dado. El éxito de un proceso de búsqueda depende de si el elemento a buscar ha sido identificado o no.

La estructura de datos permite la búsqueda de datos a través de dos métodos.

  1. Búsqueda lineal o búsqueda secuencial
  2. Búsqueda binaria

Búsqueda lineal

Los algoritmos de búsqueda lineal son un tipo de algoritmo para la búsqueda secuencial de los datos. Este algoritmo encuentra un elemento dado con complejidad O(n). Se aplica a una colección de artículos. Todos y cada uno de los elementos de los datos se buscan secuencialmente y se devuelven si coinciden con el elemento buscado. Si no se encuentran coincidencias, la búsqueda continúa hasta el final de los datos recopilados. Es básicamente una técnica de exploración de cada elemento mientras se recorre la lista. El algoritmo de búsqueda se puede aplicar tanto a los datos ordenados como a los no ordenados. Prácticamente, la búsqueda lineal rara vez se usa debido a las opciones de búsqueda más rápidas proporcionadas por otros algoritmos de búsqueda, como los algoritmos de búsqueda binaria y las tablas hash.

Pasos en el algoritmo de búsqueda lineal

  • Lectura del elemento de búsqueda por parte del usuario.
  • El elemento a buscar se comprime con el primer elemento de la lista.
  • Si los elementos coinciden, se genera una devolución.
  • Si los elementos no coinciden, el elemento a buscar se compara con el segundo elemento de la lista.
  • El proceso se repite hasta que se empareja el elemento.

Características de los algoritmos de búsqueda lineal

  1. Por lo general, se aplica a una pequeña lista de datos sin clasificar o desordenados.
  2. El tiempo depende linealmente del número de elementos, por lo que tiene una complejidad temporal si O(n).
  3. La implementación es muy simple.

Algoritmos de búsqueda lineal

Un método de bucle continuo continúa a menos y hasta que se encuentre el elemento

  • algoritmo Seqnl_Search (lista, artículo)
  • Pre: lista != ;
  • Publicar: devolver el índice del elemento si se encuentra, de lo contrario: 1
  • índice <-fi
  • while index < list.Cnt and list[index] != item //cnt: variable de contador
  • índice <- índice + 1
  • terminar mientras
  • si índice < lista.Cnt y lista[índice] = artículo
  • índice de retorno
  • terminara si
  • retorno: 1
  • fin Seqnl_Search

Ejemplo de búsqueda lineal

Problema: Dada una matriz arr[] de n elementos, escriba una función para buscar un elemento dado x en arr[].

Figura 1: Un ejemplo de código que muestra la implementación del algoritmo de búsqueda lineal

Fuente

Los algoritmos de búsqueda lineal se pueden utilizar en varios lenguajes de programación.

  1. Búsqueda lineal en Python

Figura 2: Un ejemplo de código que muestra un algoritmo de búsqueda lineal en lenguaje Python

Fuente

Salida: El elemento está presente en el índice 3

  1. Búsqueda lineal en C

Figura 3: Un ejemplo de código que muestra un algoritmo de búsqueda lineal en lenguaje C

Fuente

Salida : el elemento está presente en el índice 3

  1. Búsqueda lineal en estructura de datos

El pseudocódigo para un problema de búsqueda lineal en la estructura de datos es

Figura 4: El pseudocódigo para el algoritmo de búsqueda lineal

Fuente

Búsqueda binaria

La búsqueda binaria es un algoritmo para buscar elementos en una matriz de elementos. En comparación con el algoritmo de búsqueda lineal, el algoritmo de búsqueda binaria se aplica a una lista ordenada de datos.

El algoritmo de búsqueda binaria incluye los siguientes pasos

  • Comparación del elemento a buscar con el elemento del medio de la lista o matriz.
  • Si el elemento coincide con el elemento de la lista, devuelve el índice del elemento central.
  • Si no se devuelve ninguna coincidencia, se comprueba si el elemento es mayor o menor que el elemento del medio.
  • Para un elemento de mayor valor que el elemento del medio, la búsqueda se realiza en el lado derecho de la matriz.
  • De manera similar, si el valor del elemento es menor que el del medio, la búsqueda se realiza en el lado izquierdo de la lista.

Por lo tanto, la búsqueda binaria se aplica mejor cuando los datos contienen un gran número de elementos de barra ordenados. Esto hace que sea un requisito para el algoritmo de búsqueda que la lista/matriz esté ordenada.

Características de la búsqueda binaria

  • El algoritmo de búsqueda binaria es útil para buscar una gran cantidad de elementos en una matriz.
  • El algoritmo de búsqueda binaria tiene una complejidad temporal de O(logn).
  • La implementación de un algoritmo de búsqueda binaria es simple.

Algoritmo de búsqueda binaria

  • Algoritmo Binary_Search (lista, artículo)
  • Establezca L en 0 y R en n: 1
  • si L > R, entonces Binary_Search termina como fallido
  • demás
  • Establezca m (la posición en el elemento medio) en el piso de (L + R) / 2
  • si Am < T, establezca L en m + 1 y vaya al paso 3
  • si Am > T, establezca R en m: 1 y vaya al paso 3
  • Ahora, Am = T,
  • la búsqueda está hecha; volver (m)

Conclusión

En este artículo, analizamos qué es un algoritmo de búsqueda lineal y también estudiamos en detalle cómo buscar un determinado elemento de una lista utilizando el algoritmo de búsqueda lineal. Por último, también vimos cómo prácticamente podíamos implementar el algoritmo de búsqueda lineal usando Python 3 como lenguaje y obtener el resultado deseado.

Si está interesado en la ciencia de datos, debe consultar el programa Executive PG en ciencia de datos de IIIT-B y upGrad, que se ha diseñado cuidadosamente para profesionales que trabajan y ofrece numerosos estudios de casos, talleres prácticos, tutoría 1 a 1 y mucho más.

¿En qué se diferencia la búsqueda lineal de la búsqueda binaria?

A continuación se ilustran las principales diferencias entre la búsqueda lineal y la búsqueda binaria:
Búsqueda lineal -
1. Los elementos no necesitan estar en ningún orden específico para la búsqueda lineal.
2. En la búsqueda lineal, se accede secuencialmente a los elementos.
3. O(n), donde n es el número de elementos del arreglo.
4. Se prefiere la búsqueda lineal cuando el conjunto de datos es relativamente más pequeño.
Búsqueda binaria -
1. Los elementos deben ordenarse para la búsqueda binaria.
2. Se accede aleatoriamente a los elementos en la búsqueda binaria.
3. O(log n), donde n es el número de elementos del arreglo.
4. La búsqueda binaria generalmente es preferible para un conjunto de datos más grande.

¿Cuáles son las aplicaciones de la búsqueda lineal?

Las siguientes son algunas de las aplicaciones significativas de la búsqueda lineal:
La búsqueda lineal es eficiente para buscar en conjuntos de datos que tienen un número menor de elementos. Si solo se necesita realizar una única búsqueda en datos no ordenados, entonces la búsqueda lineal es preferible a otros algoritmos de búsqueda.
La búsqueda de un nodo en una lista enlazada se vuelve eficiente cuando se realiza una búsqueda lineal. Además, la búsqueda binaria y la búsqueda lineal tienen las mismas complejidades temporales en las listas enlazadas. La búsqueda binaria puede incluso volverse compleja para realizar operaciones de búsqueda en listas vinculadas.
Si los elementos del conjunto de datos se modifican repetidamente, entonces, en tales casos, la búsqueda lineal es la opción preferida.

Dé ejemplos donde la búsqueda lineal se puede ver en la vida real.

El algoritmo de búsqueda lineal es análogo a la búsqueda de la vida real. Hay varios ejemplos que lo prueban:
Buscando un libro en una pila de 100 libros. Escanearás linealmente el nombre de cada libro hasta encontrar el correcto
Encontrar su taxi en el estacionamiento. Cuando reserva un viaje en taxi, tiene el número de matrícula del taxi. Para encontrar su taxi, el método obvio sería hacer coincidir la matrícula de cada automóvil con su número.
Encontrar sus galletas favoritas en los estantes de las tiendas. De una gran colección de cookies en una tienda, buscará cada fila una por una.