
Python Algorithms, 2nd Edition
Magnus Lie Hetland
- Editorial
- Apress
- Año
- 2014
- Páginas
- ~320
- Nivel
- Básico
De qué trata
Segunda edición actualizada a Python 3 del aclamado tratado de diseño y análisis algorítmico escrito por Magnus Lie Hetland, profesor asociado en la Universidad Noruega de Ciencia y Tecnología (NTNU). La obra está orientada a desarrolladores y estudiantes con conocimientos previos de la sintaxis y colecciones básicas de Python que quieren trascender la simple codificación para aprender a pensar algorítmicamente, formular soluciones formales y entender en profundidad el porqué de la eficiencia y corrección de un algoritmo.
El núcleo didáctico del libro utiliza la inducción matemática como principio unificador para diseñar y comprender código recursivo e iterativo. Hetland analiza la complejidad asintótica (notaciones Big-O, Omega y Theta), el paradigma divide y vencerás (búsqueda binaria, Mergesort, Quicksort y árboles de recurrencia), algoritmos voraces o Greedy (árboles de expansión mínima con Kruskal y Prim, y códigos de Huffman), y programación dinámica mediante memoización y descomposición en subproblemas. En el área de grafos, detalla recorridos BFS y DFS, caminos mínimos con Dijkstra y Bellman-Ford, componentes fuertemente conexas, emparejamientos y problemas de corte mínimo y flujo máximo con Ford-Fulkerson. También aborda la teoría de la complejidad computacional (clases P, NP y NP-completitud) y técnicas prácticas de profiling y aceleración de Python mediante PyPy, Cython y extensiones en C.
El enfoque combina explicaciones conceptuales y analíticas con implementaciones en código Python sumamente idiomático, complementadas al final de cada capítulo con ejercicios reflexivos y de resolución de problemas cuyas pistas y guías se recogen en el Apéndice D. No plantea proyectos de aplicaciones finales de usuario o web, sino rutinas algorítmicas compactas y elegantes. Su valor diferencial reside en desmitificar la matemática formal conectándola con la expresividad natural de Python; requiere disposición hacia el pensamiento abstracto y deja de lado frameworks específicos para concentrarse en la ciencia computacional pura.
- Python 3
- Algoritmos
- Inducción matemática
- Notación Big-O
- Divide y vencerás
- Programación dinámica
- Algoritmos voraces
- Grafos
- Dijkstra
- Flujo máximo
- Problemas NP-completos
- Cython
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✗ Sin proyectos

