CC30A Algoritmos y Estructuras de Datos

Sección 01, Semestre Otoño 2005

Prof. Patricio Poblete

Objetivos del curso

Estudiar métodos de diseño de algoritmos y de desarrollo de programas. Conocer los principales algoritmos y estructuras de datos, incluyendo el análisis de su desempeño.

Temario

  1. Métodos de programación y fundamentos matemáticos: invariantes, diagramas de estado, recursividad, dividir para reinar, nociones de análisis de algoritmos, planteamiento y resolución de ecuaciones de recurrencia, programación dinámica, conceptos de orientación a objetos.
  2. Estructuras de datos básicas: arreglos, punteros, listas enlazadas, árboles.
  3. Tipos de datos abstractos (TDA): concepto de encapsulamiento, listas, pilas, colas.
  4. TDA diccionario: implementaciones simples, árboles de búsqueda binaria, árboles AVL, árboles 2-3, árboles B, árboles digitales, skip lists, hashing.
  5. Ordenamiento: cota inferior, quicksort, heapsort, bucketsort, mergesort, ordenamiento externo.
  6. Búsqueda en texto: método de fuerza bruta, Knuth-Morris-Pratt, Boyer-Moore.
  7. Grafos: representación y recorrido, árbol cobertor mínimo, distancia mínima.
  8. Algoritmos probabilísticos.

Evaluaciones

Reglas del juego