Piensa en un problema de tamaño N,
En la recursividad, divide el problema en un tamaño más pequeño, digamos N / 2 y otro N / 2. Cada uno de los subproblemas N / 2 se divide en N / 4 y N / 4. Sigue dividiendo el problema hasta que ya no sea posible la subdivisión.
Esto funciona porque si, por ejemplo, divide el problema de tamaño N en 4 subproblemas de igual tamaño, entonces
- ¿Cuál es el orden cronológico de los algoritmos de reconocimiento facial?
- ¿Cómo debo hacer uso de sitios como HackerEarth y GeeksforGeeks si tengo habilidades de algoritmos por debajo del promedio?
- Cómo usar el 'mapa combinatorio' de una triangulación de un polígono 2D para probar si un borde dado de la triangulación es un borde límite
- Cómo agregar un elemento a una matriz en Java
- ¿Es la calificación de revisión un factor en el algoritmo de 'Yelp Sort' de Yelp?
N / 4 + N / 4 + N / 4 + N / 4 = 4N / 4 = N.
Ahora, todo lo que necesita es resolver cada uno de estos problemas más pequeños y dado que ya sabemos que combinar las 4 partes nos dará la solución al problema principal (solución del problema de tamaño N).
Para resolver un problema menor, llamamos a una función particular de forma recursiva.
El ciclo se usa para decidir cuántas veces debemos repetir un cálculo dados dos
condiciones,
- una condición inicial: así es como comienza un ciclo
- una condición de terminación: aquí es donde termina un bucle.
Entre estas dos condiciones, el bucle ejecuta la lógica de cálculo repetidamente.
En resumen, el bucle debe satisfacer el triple de Hoare ,
{P} C {Q}
P – Precondición
C – comando
Q – Postcondición
Puedes leer sobre Hoare triple en wiki – Hoare logic – Wikipedia