Beta abierta, gratis durante el lanzamiento

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.

  1. Etapa 1

    Introducción

    Cómo usar este curso, cómo estudiar y qué esperar. Cinco minutos antes de arrancar con los temas.

    Explorar
  2. 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
  3. Etapa 3

    Arrays y Strings

    Las estructuras base. Operaciones in-place, slicing eficiente, mutabilidad de strings y arrays dinámicos por dentro.

    Explorar
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. Etapa 10

    Listas Enlazadas

    Singly, doubly, circular. El patrón sentinela y la detección de ciclos con tortuga y liebre.

    Explorar
  11. 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
  12. 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
  13. Etapa 13

    Árboles Binarios

    Recorridos, tipos de árbol (BST, balanceados, completos), métricas (altura, profundidad, diámetro) y serialización.

    Explorar
  14. 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
  15. 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
  16. Etapa 16

    Grafos

    Representaciones, componentes conexos, caminos mínimos (Dijkstra, Bellman-Ford, Floyd-Warshall), orden topológico y Union-Find.

    Explorar
  17. Etapa 17

    Backtracking

    Identificar problemas, la plantilla choose/explore/unchoose y técnicas de pruning para que la búsqueda exponencial sea manejable.

    Explorar
  18. 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
  19. 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
  20. Etapa 20

    Trie

    Árbol especializado para buscar prefijos y palabras. La estructura detrás de autocomplete, corrector ortográfico y búsqueda predictiva.

    Explorar
  21. 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
  22. 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.