
No necesitas memorizar una lista de algoritmos. Necesitas reconocer qué trabajo estás intentando hacer, qué forma tienen los datos y cuántas veces repetirás la operación.
Buscar un usuario por email, encontrar una ruta y ordenar productos son problemas distintos. Pueden compartir ideas —comparar, descartar, recorrer, priorizar—, pero requieren estructuras y costos diferentes.
La decisión correcta empieza por el dato y la pregunta, no por el nombre del algoritmo.
01. Decide en 60 segundos
Empieza con cuatro preguntas: ¿buscas un valor o un camino?, ¿los datos ya están preparados?, ¿la consulta se repite?, ¿necesitas ordenar el resultado completo?
Mapa de decisión entre búsqueda, índices, grafos, pathfinding y ordenamiento
| Necesidad | Condición | Primera opción | Ejemplo |
|---|---|---|---|
| encontrar un elemento una vez | colección sin preparar | búsqueda lineal | localizar un error en una lista corta |
| buscar repetidamente por clave | clave única o estable | hash map / índice | usuario por email |
| buscar límites o rangos | datos ordenados | búsqueda binaria | primer precio mayor a un valor |
| explorar relaciones | árbol o grafo | BFS / DFS | dependencias o componentes |
| minimizar pasos | grafo sin pesos | BFS | menor número de movimientos |
| minimizar costo | pesos no negativos | Dijkstra / A* | ruta por tiempo o distancia |
| presentar o procesar en orden | colección completa | algoritmo de ordenamiento | ranking o reporte |
Ordenar antes de una sola búsqueda suele ser trabajo innecesario. En cambio, preparar un índice puede compensar cuando la misma consulta se ejecuta cientos de veces.
02. La forma del dato limita las opciones
Un algoritmo no trabaja en el vacío. La estructura disponible determina qué operaciones son baratas y cuáles exigen recorrer todo.
Operaciones disponibles según la forma del dato: array, array ordenado, hash map, árbol o grafo
| Estructura | Operación natural | Costo típico | Cuidado |
|---|---|---|---|
| array sin ordenar | recorrer por posición | búsqueda O(n) | no ofrece descarte por mitades |
| array ordenado | buscar límites y rangos | búsqueda O(log n) | mantener el orden tiene costo |
| hash map | consultar por clave | O(1) promedio | no conserva rango ni vecindad |
| árbol | recorrer jerarquía | depende de altura y forma | puede desbalancearse |
| grafo | explorar relaciones y rutas | suele depender de V + E | los pesos cambian el método |
Si estas estructuras todavía no son familiares, empieza por Estructuras de datos esenciales. Para interpretar los costos sin confundirlos con milisegundos, revisa Big O explicado visualmente.
03. Preparar una vez o recorrer muchas veces
La elección cambia cuando una consulta deja de ser ocasional. Para una colección de tamaño n y q consultas, piensa en el costo total:
costo total = preparación + q × costo por consulta
Punto de equilibrio entre recorrer, ordenar para búsqueda binaria y construir un índice hash
Una búsqueda lineal no exige preparación, pero repite hasta O(n) trabajo por consulta. Un índice requiere tiempo y memoria iniciales, pero puede reducir cada lookup a O(1) promedio. Ordenar abre la puerta a búsquedas binarias de O(log n), aunque insertar nuevos datos puede ser más costoso.
| Escenario | Estrategia razonable |
|---|---|
| pocos datos, una consulta | recorrer directamente |
| muchas consultas por clave | construir un mapa |
| muchas consultas por rango | mantener una estructura ordenada |
| datos que cambian constantemente | medir actualización y consulta juntas |
No compares solo la consulta más rápida. Incluye memoria, costo de actualización y frecuencia real de uso.
04. Rama de búsqueda: valor, recorrido o ruta
La búsqueda se divide en dos familias principales.
Colecciones. Linear Search funciona sin preparación; Binary Search necesita orden; un hash lookup necesita una clave y memoria auxiliar. La elección depende de cuántas consultas habrá y de si también importan rangos u orden.
Grafos y pathfinding. BFS minimiza pasos en grafos sin pesos; DFS explora profundidad, componentes o backtracking; Dijkstra minimiza costo con pesos no negativos; A* usa una heurística para dirigir la exploración hacia un objetivo.
La guía Algoritmos de búsqueda desarrolla estas decisiones. Para comparar visualmente la frontera, los visitados y el camino reconstruido, continúa con Pathfinding visual con BFS, Dijkstra y A*.
05. Rama de ordenamiento: el dataset también decide
No existe un algoritmo de ordenamiento ganador para todos los casos.
| Situación | Candidato útil | Motivo |
|---|---|---|
| pocos elementos o datos casi ordenados | Insertion Sort | aprovecha desplazamientos cortos |
| rendimiento predecible y estabilidad | Merge Sort | garantiza O(n log n) |
| buen rendimiento general en memoria | Quick Sort bien implementado | excelente localidad; el pivote importa |
| memoria auxiliar limitada | Heap Sort | O(n log n) in-place |
| claves enteras con dominio controlado | Counting / Radix | explotan la representación de la clave |
Bubble y Selection son útiles para aprender comparaciones e intercambios, no como opción predeterminada de producción. La guía de algoritmos de ordenamiento compara estabilidad, memoria y peores casos. El visualizador en Canvas 2D explica cómo convertir ese trabajo en eventos y métricas reproducibles.
06. Ruta recomendada por objetivo
Usa este artículo como índice, no como destino final:
Roadmap de familias de algoritmos desde búsqueda y grafos hasta ordenamiento por comparación o distribución
- Entender crecimiento: Big O y estructuras de datos.
- Encontrar un valor: Linear Search, Binary Search e índices hash.
- Explorar relaciones: BFS y DFS.
- Encontrar una ruta de costo mínimo: Dijkstra y A*.
- Organizar una colección: familias de sorting y sus tradeoffs.
- Ver el proceso: visualizadores que expongan estado interno, no solo animaciones.
Antes de implementar, documenta la forma del dato, el tamaño esperado, la frecuencia de consultas, las actualizaciones y la métrica que quieres optimizar. Esa pequeña ficha elimina más decisiones equivocadas que memorizar otra tabla de complejidades.
El mapa completo queda así: Big O explica el crecimiento, las estructuras habilitan operaciones, los algoritmos hacen el trabajo y los visualizadores vuelven visible cada decisión.