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