Desde una perspectiva computacional, un algoritmo es cualquier proceso computacional bien definido que comienza con un estado inicial y valores de entrada o un conjunto de valores y le aplica una serie finita de operaciones computacionales, produciendo una salida o solución.
Se puede pensar en un algoritmo como una herramienta para resolver ciertos cálculos computacionales.
Se aplican diferentes clasificaciones a los algoritmos dependiendo de los criterios utilizados.
Por ejemplo, si usamos una clasificación de símbolos para describir las acciones de un algoritmo, podemos distinguir dos tipos de algoritmos cualitativos: algoritmos cuyos pasos son instrucciones verbales, y algoritmos cuantitativos: algoritmos que siguen instrucciones computacionales. número.

Si se clasifican según sus funciones, se pueden formar tres grupos principales como son los algoritmos de búsqueda, los algoritmos de clasificación y los algoritmos de enrutamiento o enrutamiento.
Un tercer criterio que se puede utilizar para la clasificación se basa en su estrategia para lograr resultados.
Los algoritmos probabilísticos, heurísticos, codiciosos, de actualización y deterministas se pueden mencionar en este grupo.
Descargar el libro
Este libro electrónico se encuentra disponible de manera gratuita bajo la licencia Creative Commons, lo que significa que puedes descargarlo, leerlo y compartirlo de manera libre.
Una copia de la licencia la puedes encontrar aquí abajo, al descargar el libro estas aceptando los acuerdos de la licencia.
Este trabajo, tiene la licencia Licencia internacional Creative Commons Attribution 4.0. Para ver una copia de esta licencia, visite https://creativecommons.org/licenses/by/4.0/ o envíe una carta a Creative Commons, PO Box 1866, Mountain View, CA 94042, EE. UU.
Se atribuye a Victor Felder, la Free Ebook Foundation y sus colaboradores.
Introducción
Presentación de la asignatura
Introducción al análisis y diseño de algoritmos
Problema: Asignaciones estables
Análisis de la eficiencia
La eficiencia de los algoritmos
Relación de ejercicios
Divide y vencerás
Algoritmos “divide y vencerás”
Algoritmos de ordenación
Relación de ejercicios y problemas
Problema resuelto: Par más cercano.
Problema resuelto: Comparación de preferencias.
Algoritmos greedy
Algoritmos greedy
Algoritmos greedy sobre grafos
Relación de ejercicios y problemas
Exploración de grafos
Recorridos sobre grafos
Backtracking (vuelta atrás)
Branch & Bound (ramificación y poda)
Árboles de juegos
Relación de ejercicios y problemas
Programación dinámica
Programación dinámica
Alineación de secuencias
Implementación en Java de algoritmos de alineación de secuencias
Relación de ejercicios y problemas