Saltar al contenido principal
Interactive Algorithm Education

Visualize & Master Algorithms & Data Structures

Explore classic & modern sorting algorithms, efficient searching techniques, and interactive data structure visualizations — all with real-time step-by-step animation, comparisons, swaps, and Big-O metrics.

Search Visualizer

Linear Search

Speed 100ms
Size 15
Difficulty ★★★★★ Beginner
Best For Small or unsorted datasets
Step Progress 0 / 0
Comparisons 0
Target —
Status Ready
Playback Paused
Out of Range
Search Range
Probe / Mid
Found
Step Explanation

Select an algorithm, enter a target value, and click 'Search' to begin.

Pseudocode
 
When to Use

Select an algorithm to see recommended use cases.

History

Select an algorithm to see its history.

Búsqueda Lineal

Beginner (1/5) ~15 minutos Escaneo secuencial Sin precondiciones de orden O(n) garantizado Primer match retornado Prereqs: Arreglos, Bucles básicos
Quick Reference

Linear Search

Linear Search is the simplest search method. It scans each element of the array sequentially until the target value is found or the entire array has been traversed.

Difficulty: Beginner (1/5) Stablesearching

Complexity

Best Time
O(1)
Average Time
O(n)
Worst Time
O(n)
Space
O(1)

When to Use

Best suited for small or unsorted datasets where random access is limited, or when the target appears early in the array.

Pros

  • Works on any array, sorted or unsorted
  • No preprocessing or extra memory required
  • Simple to implement and understand

Cons

  • O(n) worst-case time makes it slow for large datasets
  • Not adaptive — always scans linearly regardless of input order

History

Linear Search is one of the oldest and most intuitive search algorithms, dating back to the earliest days of computing and manual data lookup.

Búsqueda Lineal escanea cada elemento del arreglo en orden hasta encontrar el target o agotar la lista. Es el algoritmo de búsqueda más simple: no requiere orden, no requiere estructura especial, solo un bucle.

Cómo Funciona

  1. Comienza en el índice 0.
  2. Compara cada elemento con el target.
  3. Si coincide: retorna el índice actual.
  4. Si no: avanza al siguiente elemento.
  5. Si agota el arreglo sin encontrar: retorna -1 (no encontrado).

Idea Clave

Búsqueda Lineal es el único algoritmo de búsqueda general que funciona en arreglos desordenados. Su costo es O(n) en el peor caso porque en el peor escenario debes mirar cada elemento exactamente una vez.

El caso mejor O(1) ocurre cuando el target está en el primer índice. El caso promedio O(n/2) = O(n) asume distribución uniforme del target.

Ejemplo Trabajado

Busca target = 5 en [2, 8, 5, 1, 9]:

ÍndiceValor¿Match?Acción
02NoContinuar
18NoContinuar
25SíRetornar 2

Resultado: encontrado en índice 2 después de 3 comparaciones.

Busca target = 7 en el mismo arreglo:

ÍndiceValor¿Match?Acción
02NoContinuar
18NoContinuar
25NoContinuar
31NoContinuar
49NoFin del arreglo

Resultado: no encontrado, 5 comparaciones.

Casos Extremos y Trampas

  • Arreglo vacío — retorna -1 inmediatamente.
  • Target duplicado — retorna la primera ocurrencia.
  • Arreglo desordenado — funciona perfectamente, no requiere preprocesamiento.
  • “No usar cuando el arreglo está ordenado: Búsqueda Binaria (O(log n)) es dramáticamente más rápida.”

Comparación con Búsqueda Binaria

AspectoBúsqueda LinealBúsqueda Binaria
PrecondiciónNingunaArreglo ordenado
ComplejidadO(n)O(log n)
Caso mejorO(1) (primer elemento)O(1) (elemento central)
Acceso aleatorioNo requeridoRequerido
Cuándo usarArreglos pequeños o desordenadosArreglos grandes y ordenados

Aplicaciones

  • Búsqueda en listas enlazadas — no hay acceso aleatorio, solo secuencial
  • Búsqueda en arreglos pequeños — n < 20, el overhead de ordenar no vale la pena
  • Búsqueda de substring — indexOf en strings es esencialmente búsqueda lineal
  • Debugging — encontrar un valor en un arreglo desordenado rápidamente

Trayectoria de Práctica

  1. Implementa Búsqueda Lineal en un arreglo de enteros; prueba con target presente y ausente.
  2. Modifícala para retornar la última ocurrencia en lugar de la primera.
  3. Compara el número de comparaciones en el peor caso para n = 1000.
  4. Discute: ¿cuándo vale la pena ordenar el arreglo primero para usar Búsqueda Binaria?
  5. Extiende a búsqueda de un substring en un string: ¿cuál es la complejidad?