Saltar al contenido

Contexto del tema

Cómo se organizan los datos en memoria para que se pueda trabajar con ellos deprisa, cómo se mide lo que cuesta un algoritmo y cuáles son los algoritmos clásicos que hay que reconocer.

De qué va y por qué se estudia

Un programa hace dos cosas: guarda datos y opera con ellos. Este tema estudia las dos por separado. Las estructuras de datos son las formas de guardar (una pila, una cola, una tabla hash, un árbol, un grafo), cada una buena para unas operaciones y mala para otras. Los algoritmos son las formas de operar, y de ellos interesa sobre todo cuánto cuestan: la notación O grande y la escala de complejidades es lo que permite decir que una búsqueda binaria es mejor que una lineal sin cronometrar nada.

Es un tema de los que más se preguntan en el bloque, y se pregunta de dos maneras. Una es de definición y de propiedad: qué estructura es LIFO y cuál FIFO, qué complejidad tiene tal algoritmo de ordenación, qué recorrido de un árbol visita primero la raíz. La otra es de reconocimiento: dado un problema, qué estrategia lo resuelve, o dado un algoritmo, de qué familia es. Las dos exigen entender cómo funciona cada cosa por dentro, no solo su nombre.

El recorrido va de lo simple a lo complejo en las estructuras (lineales, hash y montículos, árboles, grafos), pasa a la medida del coste y a las estrategias de diseño, y termina con los algoritmos concretos de ordenación y búsqueda y con los ficheros y formatos que el programa oficial cuelga aquí.

Estructuras de datos y algoritmos

Cómo se guardan los datos

  • TAD y estructuras lineales
  • Tablas hash y montículos
  • Árboles
  • Grafos

Cuánto cuesta operar con ellos

  • Complejidad algorítmica
  • Estrategias de diseño

Los algoritmos clásicos

  • Ordenación y búsqueda
  • Ficheros y formatos

Cada estructura es un compromiso: rápida para unas operaciones, lenta para otras. Si entiendes ese compromiso, las preguntas de complejidad y de elección de estructura se contestan razonando, no recordando.

Para el examen

  • Dos mitades del tema: cómo se guardan los datos y cuánto cuesta operar con ellos

  • Herramienta central: la notación O grande para comparar algoritmos sin cronometrar

  • Cómo se pregunta: por propiedad (LIFO, FIFO, complejidad) y por reconocimiento