Manuales Fundamentales

Aquí están los manuales que explican los conceptos algorítmicos básicos:

  1. Introducción a la Algoritmia (I): Eficiencia
  2. Introducción a la Algoritmia (II): Costes
  3. Introducción a la Algoritmia (III): Ejemplos de análisis de costes
  4. Introducción a la Algoritmia (IV): Coste de ordenar
  5. Recursividad
  6. Algoritmos Voraces

Algoritmos con Números

Estos manuales explican algoritmos para tratar con números, especialmente en relación a propiedades de divisibilidad.

  1. Exponenciación Rápida
  2. Algoritmo de Euclides
  3. Criba de Eratóstenes
  4. Criba de Gries-Misra

Búsqueda Completa y Programación Dinámica

La Búsqueda Completa es una técnica para resolver problemas de computación que se basa en probar todas las opciones posibles. La Programación Dinámica es una técnica más refinada, que en lugar de probar todas las opciones las agrupa en subproblemas que resuelve una sola vez.

  1. Búsqueda Completa (I)
  2. Búsqueda Completa (II)
  3. Programación Dinámica (I)
  4. Programación Dinámica (II)

Estructuras de Datos

Estos manuales explican estructuras de datos, es decir, métodos de organizar y procesar datos para obtener información y actualizarlos de forma eficiente.

  1. RSQ y Sumas Cumulativas
  2. RMQ y Sparse Table
  3. Árboles de Segmentos (I)
  4. Árboles de Segmentos (II)
  5. Árboles de Segmentos (III)
  6. Estructura Unión-Búsqueda en conjuntos disjuntos (I)
  7. Estructura Unión-Búsqueda en conjuntos disjuntos (II)

Grafos

Aquí se explican algoritmos sobre grafos.

  1. Introducción a los grafos
  2. Graph Traversal (DFS y BFS)
  3. Camino más corto entre nodos (Dijkstra, Bellman-Ford y Floyd-Warshall)
  4. Minimum Spanning Tree (Prim y Kruskal)