Algoritmo aleatorizado VS recursivo
Los algoritmos aleatorios incorporan una sensación de aleatoriedad en su lógica tomando decisiones aleatorias durante la ejecución del algoritmo. Debido a esta aleatoriedad, el comportamiento del algoritmo puede cambiar incluso para una entrada fija. Para muchos problemas, los algoritmos aleatorios proporcionan las soluciones más simples y eficientes. Los algoritmos recursivos se basan en la idea de que la solución a un problema se puede encontrar al encontrar soluciones a submosteros más pequeños del mismo problema. La recursión se usa ampliamente para encontrar soluciones a problemas en la informática y muchos lenguajes de programación de alto nivel admiten la recursión.
¿Qué es un algoritmo aleatorizado??
Los algoritmos aleatorios incorporan un sentido de aleatoriedad tomando decisiones aleatorias que guíen la ejecución del algoritmo. Esto generalmente se realiza tomando un conjunto de números aleatorios generados por un generador de números pseudorandom como una entrada adicional. Debido a esto, el comportamiento del algoritmo puede cambiar incluso para una entrada fija. Quicksort es un algoritmo ampliamente conocido que utiliza el concepto de aleatoriedad y tiene un tiempo de ejecución de O (n log n) independientemente de las propiedades de entrada. Además, el método de construcción incremental aleatorizado se utiliza para estructuras de edificios como el casco convexo en la geometría de computación. En este método, los puntos de entrada se permiten aleatoriamente y luego se insertan uno por uno en la estructura. Implementar un algoritmo aleatorizado es relativamente simple que implementar un algoritmo determinista para el mismo problema. El mayor desafío en el diseño de un algoritmo aleatorizado radica en realizar análisis asintóticos para la complejidad del tiempo y el espacio.
¿Qué es un algoritmo recursivo??
Los algoritmos recursivos se basan en la idea de que la solución a un problema se puede encontrar al encontrar soluciones a submosteros más pequeños del mismo problema. En un algoritmo recursivo, una función se define en términos de la versión anterior de sí misma. Es importante tener en cuenta que esta autocuración debe tener una condición de terminación para evitar referirse para siempre. La condición de terminación se verifica antes de hacer referencia a sí misma. El paso inicial de un algoritmo recursivo está relacionado con la cláusula base de la definición recursiva del problema. Los pasos que siguen el paso inicial están relacionados con las cláusulas inductivas del problema. Los algoritmos recursivos proporcionan una solución más simple en muchas situaciones y está más cerca de la forma natural de pensar que el algoritmo iterativo para el mismo problema. Pero en general, los algoritmos recursivos requieren más memoria y son computacionalmente caros.
¿Cuál es la diferencia entre un algoritmo aleatorizado y recursivo??
Los algoritmos aleatorios son algoritmos que usan una sensación de aleatoriedad al tomar decisiones aleatorias que podrían afectar la ejecución del algoritmo, mientras que los algoritmos recursivos son algoritmos que se basan en la idea de que se puede encontrar una solución a un problema encontrando soluciones a submosteros más pequeños. del mismo problema. Debido a la aleatoriedad en los algoritmos aleatorios, el comportamiento del algoritmo podría cambiar incluso para la misma entrada (en diferentes ejecuciones del algoritmo). Pero esto no es posible en los algoritmos recursivos y el comportamiento de un algoritmo recursivo sería el mismo para una entrada fija.