最近听朋友偶尔聊起了这个话题,说是内层循环和外层循环次数相差比较大的情况下次数多的放在内还是外循环,哪个更优?
举个栗子:一个嵌套循环,一个循环100次,一个循环1w次,那么是外层100呢还是1w呢?哪个更好?
答案是外层100,内层1w更优。
目的:减少CPU循环的切入次数
这里简单说下吧,在计算机编程的基层,偏机器语言汇编中,在循环中需要循环命令REP和计数寄存器CX;
进行循环时,每次要对内层循环的调用都要准备环境,给CX赋值然后循环,如果循环次数最多的放在内层,那么CPU前面循环调用次数明显比较少;
MOV CX, n
rtag:
MOV AX, 1
....
LOOP rtag
简单总结下:
1.在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
2.如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。