El presente libro aborda el estudio de los algoritmos como herramientas básicas para cualquier tipo de programación computacional. Abarca los temas desde un punto de vista general y aporta los métodos básicos para la construcción de algoritmos eficientes. Su lenguaje es sencillo y lleva a los estudiantes paso a paso, para facilitar la comprensión de los temas. Más que presentar algoritmos concretos en algún lenguaje determinado, se enfoca en presentar las estrategias que pueden emplearse para la creación de los mismos. Cada algoritmo que se presenta se acompaña de ejemplos y figuras. Se incluyen algunos programas escritos en Java para que los estudiantes practiquen. Destaca también la amplia bibliografía.
1. Introducción.
2. Complejidad de los algoritmos y cotas inferiores de los problemas.
3. El método codicioso.
4. La estrategia divide y vencerás.
5. La estrategia de árboles de búsqueda.
6. Prune-and-Search.
7. Programación dinámica.
8. Teoría de los problemas NP-completos.
9. Algoritmos de aproximación.
10. Análisis amortizado.
11. Algoritmos aleatorios.
12. Algoritmos en línea. Bibliografía.