
Grokking Algorithms
Aditya Y. Bhargava
- Editorial
- Manning
- Año
- 2016
- Páginas
- ~258
- Nivel
- Básico
De qué trata
Manual introductorio y ampliamente aclamado publicado por Manning en 2016, concebido por Aditya Bhargava para enseñar los fundamentos de la algoritmia y las estructuras de datos prescindiendo del formalismo matemático árido y apoyándose en más de 400 diagramas e ilustraciones explicativas. Utiliza fragmentos de código concisos en Python (compatible con Python 2 y 3) y está especialmente diseñado para desarrolladores autodidactas, estudiantes universitarios iniciales y profesionales de la programación que preparan entrevistas técnicas o que desean refrescar conceptos esenciales de ciencias de la computación sin perderse en notaciones densas.
El autor desglosa de manera progresiva los conceptos fundamentales del rendimiento y diseño de software: la notación Big O y las clases de complejidad temporal; la comparación funcional y en memoria entre arreglos continuos y listas enlazadas; la búsqueda binaria y el algoritmo de ordenación por selección; la mecánica interna de la recursión ilustrada con la pila de llamadas (call stack); la técnica de divide y vencerás materializada en Quicksort; la creación y prevención de colisiones en tablas hash para cachés y búsquedas en tiempo constante; la teoría de grafos mediante búsqueda en anchura (BFS) para calcular rutas mínimas en grafos sin ponderar; el algoritmo de Dijkstra para grafos dirigidos con pesos positivos; la resolución aproximada de problemas NP-completos con algoritmos voraces (greedy); la programación dinámica para problemas de optimización con dependencias (como la mochila de objetos y secuencias comunes); y una introducción al algoritmo de clasificación y recomendación K-vecinos más cercanos (KNN).
Cada capítulo integra pequeños problemas y ejercicios breves intercalados a lo largo de las explicaciones, cuyas soluciones completas y razonadas se recogen en un apéndice final. La gran fortaleza del libro radica en su capacidad para fijar modelos mentales intuitivos sobre qué algoritmo escoger para cada situación práctica; no obstante, deja fuera demostraciones formales de corrección matemática, cálculo riguroso de cotas asintóticas y estructuras avanzadas (como árboles binarios autobalanceados o algoritmos de grafos con pesos negativos), por lo que funciona como una excelente rampa de acceso previa a textos académicos más densos como Cormen o Sedgewick.
- Algoritmos
- Estructuras de datos
- Python
- Notación Big O
- Búsqueda binaria
- Quicksort
- Tablas hash
- Búsqueda en anchura (BFS)
- Algoritmo de Dijkstra
- Algoritmos voraces
- Programación dinámica
- KNN
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✗ Sin proyectos

