Materiales
Libros de referencia, cronograma semanal y recursos para Estructuras de Datos y Algoritmos.
Libros de referencia
Data Structures and Algorithm Analysis in C++
Weiss, Mark Allen
Evaluacion
Parcial 1
Semana 5
Parcial 2
Semana 11
Parcial 3
Semana 15
Práctica intermedia
Semana 10
Práctica final (integradora)
Semana 15
Quiz sorpresa 1
Quiz sorpresa 2
Participación en clase
Cronograma semanal
Repaso de vectores: inserción, eliminación, búsqueda, recorrido. Introducción a arreglos bidimensionales. Notación Big O: O(1) y O(n).
Introducción a punteros y memoria dinámica en C++. Declaración de punteros, uso de new/delete. Implementación de listas enlazadas simples.
Listas doblemente enlazadas. Listas circulares. Introducción a pilas (LIFO) y colas (FIFO).
Bubble Sort, Insertion Sort, Selection Sort. Análisis de complejidad O(n²) vs O(n log n). Recursión y divide y vencerás.
Merge Sort, Quick Sort. Comparación de rendimiento. Complejidad temporal y espacial. PARCIAL 1.
Operaciones con estructura bidimensional: recorrido por filas, columnas, diagonal. Insertar/borrar, buscar. Transposición. Complejidad O(n²).
Suma, resta, producto escalar, multiplicación de matrices, división, potencia de matriz cuadrada.
Funciones hash y manejo de colisiones. Técnicas de resolución abierta y cerrada. Implementación de heaps como colas de prioridad.
Árboles binarios: definición, representación de nodos. Recorridos (inorden, preorden, postorden). Inserción, búsqueda y eliminación. Backtracking — MinMax, Poda Alpha-Beta.
Árboles AVL: rotaciones y balanceo. Introducción a Red-Black Trees. Comparación con BST simples. Entrega: Práctica intermedia.
Introducción a grafos. Representación: matriz de adyacencia y lista de adyacencia. Dirigidos y no dirigidos. Grado, conectividad, ciclos. PARCIAL 2.
BFS (Breadth-first search). DFS (Depth-first search). Aplicaciones en búsqueda de rutas y componentes.
Algoritmos voraces y programación dinámica. Problema de la mochila (Knapsack). Estructuras combinadas para optimización.
Problema de las N reinas. Continuación de programación dinámica.
Algoritmo de Dijkstra. Algoritmo de Floyd-Warshall. Aplicaciones en navegación. Análisis de eficiencia y optimización. PARCIAL 3.
Exposición (sustentación) de proyectos y retroalimentación final.