¿Cuáles son los diferentes tipos de algoritmos?

La siguiente es otra forma de clasificar algoritmos.

En la programación competitiva, hay 4 paradigmas principales de resolución de problemas.

En otras palabras, dado un problema, aquí están los diferentes enfoques / herramientas que debe tomar para resolverlo.

  1. Fuerza bruta / Búsqueda completa: un método que analiza todas las posibilidades y selecciona la mejor solución.
    1. Pros: simple, siempre debe encontrar la solución ya que está buscando todas las posibilidades
    2. Contras : inviable ya que el número de posibilidades crece exponencialmente a medida que aumenta el número de elementos
  2. Divide y vencerás: método que divide el problema en partes más pequeñas y luego resuelve esas partes. Piensa en la búsqueda binaria.
  3. Enfoque codicioso: Método que elige la mejor opción en el momento actual, sin ninguna consideración para el futuro.
    1. Pros: rápido, simple, puede obtener la mejor solución o acercarse un poco
    2. Contras: la mayoría de las veces, no obtendremos la mejor solución
  4. Programación dinámica: método que se acumula para una solución utilizando sub-soluciones encontradas previamente. Definitivamente una de las técnicas más avanzadas, pero extremadamente potente y aplicable.
    1. Pros: encuentra la solución óptima para muchos problemas en el tiempo polinómico (mientras que la fuerza bruta sería exponencial)
    2. Contras : difícil de comprender y aplicar, lleva tiempo comprender los diversos estados y la recurrencia

Fuentes

Halim, Steven y Felix Halim. Programación competitiva: el nuevo límite inferior de los concursos de programación . Lulu, 2013.

1) fuerza bruta

2) Divide y vencerás

3) Disminuir y conquistar

4) programación dinámica

5) Algoritmo codicioso

6) Transformar y conquistar

7) Algoritmo de retroceso

Fuente: Algoritmo: Tipos y Clasificación – Gonit Sora

Un algoritmo (pronunciado AL-go-rith-um) es un procedimiento o fórmula para resolver un problema, basado en la conducción de una secuencia de acciones específicas

Algoritmos recursivos simples

  • Algoritmos de retroceso.
  • Divide y conquista algoritmos.
  • Algoritmos de programación dinámica.
  • Algoritmos codiciosos.
  • Algoritmos ramificados y ligados.
  • Algoritmos de fuerza bruta.
  • Algoritmos aleatorizados.

Debería intentar buscar primero en http://Quora.com antes de publicar una pregunta. Respuesta del usuario de Quora a ¿Cuáles son los diferentes tipos de algoritmos?

“Un algoritmo” es “un proceso o conjunto de reglas a seguir en las operaciones de resolución de problemas”, por lo que hay tantos tipos de algoritmos como tipos de problemas. (La palabra proviene del latín medieval, no se limita a la programación de computadoras). Pensar que hay un número fijo de algoritmos y que hay que aprender al menos todos los tipos es una falla que causa que muchos programadores potenciales recurran al césped mantenimiento como medio de ganarse la vida.

Desarrolla un algoritmo para cualquier problema que surja cuando está desarrollando el resto del programa.