Estructuras de datos y algoritmos

Este libro está dirigido a todas aquellas personas que cursan la asignatura de estructuras de datos y algoritmos de la Ingeniería de Sistemas . Surge como una propuesta para que todos aquellos estudiantes se animen a agregar o mejorar el contenido o en su caso sirva para mejorar sus conocimientos.

Contenido

editar
  1. Introducción y conceptos fundamentales
  2. Clasificación en Memoria Principal
  3. Clasificación en Memoria Secundaria
  4. Tipos de Datos Abstractos Dinámicos Lineales
  5. Tipos de Datos Abstractos Dinámicos No Lineales: Arboles
  6. Árboles Avanzados
  7. Programación Orientada a Objetos

Documentación

editar

Algoritmos

editar

Técnicas de diseño de algoritmos

editar
  • Algoritmos voraces: seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es óptima.
  • Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma simultánea en varios procesadores.
  • Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios.
  • Algoritmos determinísticos: el comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro antecesor.
  • Algoritmos no determinísticos: el comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.
  • Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos para después unirlas, logrando así la solución al problema completo.
  • Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.
  • Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.
  • Ramificación y acotación: se basa en la construcción de las soluciones al problema mediante un árbol implícito que se recorre de forma controlada encontrando las mejores soluciones.
  • Vuelta atrás: se construye el espacio de soluciones del problema en un árbol que se examina completamente, almacenando las soluciones menos costosas.

Estructuras

editar

Algoritmos de busquedas

editar

Wikilibros relacionados

editar