En los programas de computadora , una forma importante de flujo de control es el bucle que hace que un bloque de código se ejecute más de una vez. Un modismo común es tener un bucle anidado dentro de otro bucle, y el bucle contenido se denomina comúnmente bucle interno . Existen dos tipos principales de bucle y se pueden anidar entre sí a, posiblemente, cualquier profundidad según sea necesario. Los dos tipos son bucle for y bucle while. [1] Ambos son ligeramente diferentes pero pueden intercambiarse. La investigación ha demostrado que el rendimiento de la estructura completa de un bucle con un bucle interno es diferente en comparación con un bucle sin un bucle interno. [2] De hecho, incluso el rendimiento de dos bucles con diferentes tipos de bucle interno, donde uno es un bucle for y el otro un bucle while, es diferente.
Se observó que se realizan más cálculos por unidad de tiempo cuando está involucrado un bucle for interno que de otra manera. Esto implica que, dado el mismo número de cálculos para realizar, el que tiene un bucle for interno terminará más rápido que el que no lo tiene. Esta es una técnica de optimización de bucles independiente de la máquina o la plataforma y se observó en varios lenguajes de programación y compiladores o intérpretes probados. El caso de un bucle while como bucle interno funcionó mal, funcionando incluso más lento que un bucle sin ningún bucle interno en algunos casos. Los dos ejemplos siguientes escritos en python presentan un bucle while con un bucle for interno y un bucle while sin ningún bucle interno. Aunque ambos tienen la misma condición de terminación para sus bucles while, el primer ejemplo terminará más rápido debido al bucle for interno. La variable innermax es una fracción de la variable maxticketno en el primer ejemplo.
while ticketno * innermax < maxticketno : for j in range ( 0 , innermax ): if ( ticketno * innermax + j ) == jackpotno : ida y vuelta ticketno + = 1
while ticketno < maxticketno : if ticketno == jackpotno : ida y vuelta ticketno + = 1
Referencias
- ^ Ghezzi, C; Jazayeri, M (1996). Conceptos de lenguajes de programación (3ª ed.) . John Wiley e hijos.
- ^ Adewumi, Tosin (agosto de 2018). "Construcción de programa de bucle interno: una forma más rápida de ejecución del programa" . Ciencias de la Computación Abierta . 8 : 115-122. doi : 10.1515 / comp-2018-0004 .