Algoritmo codicioso:
El algoritmo codicioso es una técnica sencilla, mientras que la solución óptima para cada instancia más pequeña proporcionará un resultado inmediato; el algoritmo no considera el problema mayor en su conjunto.
En general, estos algoritmos se utilizan para resolver problemas de optimización y funcionan mediante la construcción recursiva de un conjunto de objetos a partir de las partes constituyentes más pequeñas posibles, con el objetivo de maximizar la función al tomar la decisión que parece más prometedora en cualquier momento en el que retroceder el problema cambia La decisión no es posible. La propiedad de elección codiciosa y la subestructura óptima son dos ingredientes en el problema que se prestan a una estrategia codiciosa.
- ¿Cuáles son los algoritmos que se pueden usar en aplicaciones web del mundo real además de ordenar o buscar?
- ¿Por qué son necesarios los algoritmos?
- ¿Cuáles son los mejores libros para aprender estructuras de datos y algoritmos para un principiante con poco lenguaje de programación de C?
- ¿Hay un paquete de Python que calcule la complejidad del tiempo?
- Cómo resolver esta recurrencia T (n) = T (sqrt (n)) + log_2 n
Divide y conquistaras:
Divide and conquer se usa para aplicaciones paralelas basadas en la conocida estrategia de divide y vencerás; La concurrencia se obtiene resolviendo simultáneamente los subproblemas en los que la estrategia divide el problema.
Divide and Conquer es una técnica de arriba hacia abajo para diseñar algoritmos, que divide un problema en subproblemas que son similares al problema original hasta que los subproblemas sean lo suficientemente fáciles de resolver de manera directa y recursiva, y finalmente, combina las soluciones a los subproblemas. para resolver el problema original
La idea básica es que si el problema es fácil, entonces puede resolverse directamente, de lo contrario descomponerlo en partes más pequeñas y resolver las partes más pequeñas.
Por lo tanto, este algoritmo se usa de manera efectiva cuando el problema se puede resolver utilizando la estrategia de dividir y conquistar y el paso de división debe producir un número constante de subproblemas que se pueden resolver de forma independiente y el tamaño de cada subproblema debe ser mucho más pequeño que el original.