Algoritmos, Estructuras de Datos y Entrevistas Programación
- estudios
Sobre el curso
Sección titulada «Sobre el curso»Este curso aborda los fundamentos de algoritmos y estructuras de datos desde una perspectiva práctica orientada tanto a la resolución eficiente de problemas como a la preparación de entrevistas técnicas en empresas tecnológicas. Cubre análisis de complejidad temporal y espacial, técnicas de diseño algorítmico y los patrones recurrentes que aparecen tanto en código de producción como en pruebas técnicas.
El programa progresa desde estructuras básicas (arrays, listas enlazadas, pilas, colas, tablas hash) hasta avanzadas (árboles binarios, árboles balanceados, heaps, tries y grafos), incluyendo los algoritmos asociados a cada una. Aborda paradigmas clásicos como divide y vencerás, programación dinámica, voraces, backtracking, búsqueda en profundidad y anchura, y técnicas de dos punteros y ventana deslizante.
Está orientado a desarrolladores que preparan entrevistas técnicas, estudiantes que quieren consolidar fundamentos de informática y programadores autodidactas que necesitan cubrir lagunas de pensamiento algorítmico. Incluye explicaciones paso a paso, implementación de cada estructura y resolución comentada de problemas tipo entrevista.
Conocimientos adquiridos
Sección titulada «Conocimientos adquiridos»El curso me ha permitido desarrollar las siguientes capacidades:
- Analizar complejidad temporal y espacial usando notación Big-O, Omega y Theta
- Comparar costes asintóticos y elegir el algoritmo según restricciones
- Implementar arrays, listas enlazadas simples y dobles
- Trabajar con pilas, colas y colas de prioridad
- Diseñar tablas hash con manejo de colisiones
- Implementar árboles binarios de búsqueda y operaciones básicas
- Equilibrar árboles mediante AVL y rojo-negro
- Utilizar heaps para colas de prioridad y heapsort
- Implementar tries para búsquedas eficientes por prefijo
- Modelar y recorrer grafos en distintas representaciones
- Aplicar BFS y DFS para recorridos y resolución de problemas
- Encontrar caminos mínimos con Dijkstra y Bellman-Ford
- Detectar ciclos y componentes conexas en grafos
- Aplicar ordenamientos clásicos (merge sort, quick sort, heap sort)
- Implementar búsqueda binaria y sus variantes
- Resolver problemas mediante recursión reconociendo casos base
- Aplicar memoización y programación dinámica top-down y bottom-up
- Utilizar técnicas voraces (greedy) reconociendo cuándo son válidas
- Resolver problemas con backtracking y poda
- Aplicar dos punteros y ventana deslizante en arrays y cadenas
- Identificar patrones comunes de problemas tipo entrevista
- Estructurar la resolución de un problema en pasos comunicables
- Optimizar soluciones desde fuerza bruta hasta complejidad óptima
- Comunicar trade-offs entre tiempo, memoria y legibilidad
Este conocimiento permite afrontar entrevistas técnicas con criterio, escribir código consciente del coste asintótico y reconocer en problemas reales patrones algorítmicos que conducen a soluciones eficientes y mantenibles.