Algoritmos y estructuras de datos, en español
Curriculum organizado por patrones. Lecciones que explican por qué funciona cada algoritmo y problemas que resuelves en un editor que corre dentro del navegador.
Sin registro obligatorio para leer las lecciones.
Por qué Brújula Codifica
Lo que hace este sitio distinto de un curso genérico o de practicar problemas sueltos en LeetCode.
Curriculum por patrones
Cada tema cubre un patrón concreto. Aprendes el patrón, después practicas con tres o cuatro problemas que lo aplican. Cuando entiendes los diez patrones principales, la mayoría de problemas de entrevista te resultan familiares.
Editor en el navegador
Python y JavaScript se ejecutan directamente en tu pestaña, sin instalar nada. Cada problema viene con casos de prueba reales, así que sabes al momento si tu solución funciona.
Material en español
Las explicaciones, los ejemplos y los enunciados están escritos en español, sin traducciones literales del inglés. Las referencias a empresas y procesos de entrevista incluyen MercadoLibre, Globant, BBVA Tech y Glovo, junto con las clásicas FAANG.
Énfasis en la intuición
Antes de mostrar la solución te explicamos por qué funciona. Si memorizas el código sin entender la idea, el próximo problema del mismo tipo te vuelve a bloquear.
Tu ruta de aprendizaje
Tres patrones para empezar. Cada semana se publica material nuevo.
- Etapa 1
Introducción
Cómo usar este curso, cómo estudiar y qué esperar. Cinco minutos antes de arrancar con los temas.
Explorar - Etapa 2
Complejidad
Big O, análisis amortizado, master theorem y trade-offs tiempo vs espacio. La base para razonar sobre cualquier algoritmo del curso.
Explorar - Etapa 3
Arrays y Strings
Las estructuras base. Operaciones in-place, slicing eficiente, mutabilidad de strings y arrays dinámicos por dentro.
Explorar - Etapa 4
Búsqueda Binaria
Encuentra elementos en datos ordenados en tiempo logarítmico. Aparece en cientos de problemas de entrevista y dentro de muchas estructuras de datos comunes.
Explorar - Etapa 5
Dos Punteros
Recorre arreglos y listas con dos índices que cooperan. Convierte soluciones O(n²) en O(n) en muchos problemas sobre arreglos.
Explorar - Etapa 6
Ventana Deslizante
Procesa subarreglos contiguos con una ventana que crece y se encoge según una condición. Convierte muchos problemas de subarreglos y substrings en O(n).
Explorar - Etapa 7
Recursión
El cimiento de árboles, grafos, backtracking y programación dinámica. Aprende a pensar recursivamente sin perderte y a manejar la pila de llamadas.
Explorar - Etapa 8
Ordenamiento
Algoritmos clásicos (merge, quick), no comparativos (counting, radix) y el patrón 'ordenar primero' que aparece en cientos de problemas.
Explorar - Etapa 9
Hash Maps y Sets
Diccionarios y conjuntos para buscar, contar y agrupar en tiempo constante. Base de la mayoría de problemas de frecuencias y duplicados.
Explorar - Etapa 10
Listas Enlazadas
Singly, doubly, circular. El patrón sentinela y la detección de ciclos con tortuga y liebre.
Explorar - Etapa 11
Pilas y Colas
LIFO, FIFO y monotonic stack. Paréntesis balanceados, evaluación de expresiones, next greater element y sliding window maximum.
Explorar - Etapa 12
Heap y Cola de Prioridad
Mantiene el mínimo o máximo en tiempo O(log n). Usado en top-k, fusiones de listas ordenadas, Dijkstra y planificación.
Explorar - Etapa 13
Árboles Binarios
Recorridos, tipos de árbol (BST, balanceados, completos), métricas (altura, profundidad, diámetro) y serialización.
Explorar - Etapa 14
Búsqueda en Anchura (BFS)
Explora árboles y grafos nivel por nivel. La herramienta natural para caminos mínimos en grafos sin pesos y para problemas sobre matrices.
Explorar - Etapa 15
Búsqueda en Profundidad (DFS)
Recorrido en profundidad sobre árboles y grafos. Base de backtracking, detección de ciclos y problemas de componentes conexos.
Explorar - Etapa 16
Grafos
Representaciones, componentes conexos, caminos mínimos (Dijkstra, Bellman-Ford, Floyd-Warshall), orden topológico y Union-Find.
Explorar - Etapa 17
Backtracking
Identificar problemas, la plantilla choose/explore/unchoose y técnicas de pruning para que la búsqueda exponencial sea manejable.
Explorar - Etapa 18
Programación Dinámica
Identificar problemas DP, memoización top-down, tabulación bottom-up, optimización de espacio y DP sobre strings.
Explorar - Etapa 19
Greedy
Decisión óptima local en cada paso. Funciona cuando el problema tiene subestructura óptima clara y propiedad de elección codiciosa.
Explorar - Etapa 20
Trie
Árbol especializado para buscar prefijos y palabras. La estructura detrás de autocomplete, corrector ortográfico y búsqueda predictiva.
Explorar - Etapa 21
Bit y Matemática
Operadores de bits, manipulación de números, máximo común divisor y trucos numéricos comunes en entrevistas.
Explorar - Etapa 22
Diseño de Estructuras
Cómo combinar dos o más estructuras de datos para resolver problemas que ninguna resuelve sola. LRU Cache, MinStack y variantes.
Explorar
Empieza por el primer tema
La primera lección cubre búsqueda binaria. Una lectura tranquila te toma alrededor de quince minutos.