Menu
Coddy logo textTech

Búsqueda lineal

Última actualización

La búsqueda lineal (también llamada búsqueda secuencial) es el algoritmo de búsqueda más simple: empieza en el primer elemento y compara cada uno con el objetivo hasta encontrar una coincidencia o quedarte sin elementos. No hace ninguna suposición sobre los datos — el arreglo puede estar desordenado, y los elementos pueden ser cualquier cosa que se pueda comparar por igualdad.

La animación de arriba resalta cada comparación mientras el recorrido avanza de izquierda a derecha y se detiene en cuanto aparece el objetivo. Su simplicidad tiene un costo en velocidad: en el peor caso se revisa cada elemento, por lo que se ejecuta en O(n). Cuando los datos están ordenados, la búsqueda binaria encuentra la misma respuesta en O(log n) — y si primero necesitas datos ordenados, mira el merge sort.

Complejidad temporal y espacial

CasoComplejidadNotas
Mejor casoO(1)El primer elemento es el objetivo.
Caso promedioO(n)En promedio se revisa la mitad de los elementos antes de un acierto.
Peor casoO(n)El objetivo es el último — o no está presente en absoluto.
EspacioO(1)Solo se guarda el índice actual.

Paso a paso

PasoQué ocurre
1Empieza en el índice 0, el primer elemento del arreglo.
2Compara el elemento actual con el valor objetivo.
3Si son iguales, devuelve el índice actual — encontrado.
4Si no, avanza una posición a la derecha y repite.
5Si se llega al final del arreglo sin una coincidencia, el objetivo no está presente (devuelve -1).

Ejemplo resuelto

Buscando 5 en [7, 3, 9, 1, 5, 8, 2]:

ComparaciónÍndiceElementoResultado
1077 ≠ 5 — sigue recorriendo.
2133 ≠ 5 — sigue recorriendo.
3299 ≠ 5 — sigue recorriendo.
4311 ≠ 5 — sigue recorriendo.
5455 = 5 — encontrado en el índice 4.

Cuándo usar la búsqueda lineal

Úsala cuandoEvítala cuando
Los datos están desordenados o cambian constantementeLos datos están ordenados — la búsqueda binaria es exponencialmente más rápida
La colección es pequeña, así que gana la simplicidadEl conjunto de datos es grande y se busca repetidamente
Solo tienes acceso secuencial (flujos, listas enlazadas)Puedes permitirte un índice o una tabla hash para búsquedas en O(1)

Una implementación limpia y ejecutable de Linear Search en Python, JavaScript, Java, C++, C, Pseudocode. Elige un lenguaje, copia el código o ábrelo ya cargado en el Playground de Coddy.

Código de Linear Search en Python

Python
1def linear_search(a, target):2    # Scan left to right until the target appears3    for i in range(len(a)):4        if a[i] == target:5            return i6    return -17
8
9nums = [7, 3, 9, 1, 5, 8, 2]10print("Index of 5:", linear_search(nums, 5))11print("Index of 4:", linear_search(nums, 4))
Ejecuta este código en el Playground de Python

Preguntas frecuentes sobre la búsqueda lineal

¿Cuál es la complejidad temporal de la búsqueda lineal?
O(n) en los casos promedio y peor — el recorrido puede tener que visitar cada elemento — y O(1) en el mejor caso, cuando el primer elemento es el objetivo. Usa O(1) de espacio adicional.
¿La búsqueda lineal necesita datos ordenados?
No — esa es su principal ventaja. La búsqueda lineal funciona con datos completamente desordenados porque comprueba la igualdad de cada elemento; el orden nunca importa. La búsqueda binaria, en cambio, solo funciona con arreglos ordenados.
¿Cuándo es mejor la búsqueda lineal que la búsqueda binaria?
Cuando los datos están desordenados y se buscan una sola vez (ordenar primero costaría O(n log n)), cuando la colección es diminuta, o cuando solo tienes acceso secuencial, como un flujo o una lista enlazada. Para búsquedas repetidas en arreglos ordenados, gana la búsqueda binaria.
¿La búsqueda lineal es lo mismo que la búsqueda secuencial?
Sí — los dos nombres describen el mismo algoritmo: recorrer los elementos en secuencia hasta encontrar el objetivo o llegar al final de la colección.
¿Cuántas comparaciones hace la búsqueda lineal en promedio?
Si el objetivo está presente y tiene la misma probabilidad de estar en cualquier lugar, unas n/2 comparaciones en promedio; si el objetivo no está, exactamente n. Ese crecimiento lineal es la razón por la que se llama búsqueda lineal.
Coddy programming languages illustration

Domina los algoritmos con Coddy

COMENZAR