循环次数太多如何优化?

可能不少同学遇到过需要循环很多次的情况。
比如我遇到的情况,循环最多要很多次。
大概是 2.8 × 1 0 14 2.8\times10^{14} ,这就很恐怖了。。。。
应该怎么化简呢?

递归

一个办法就是用递归试试。

void recursion(i,j){
  if(j-i>10000){
		recursion(i,(i+j)/2);
		recursion((i+j)/2,j);
	}
	else{
	  执行代码
	  }
}

我试了一下,确实有点快过,可以把i到j之间分成更多的部分,然后再递归,效果更好。
有些递归甚至能把相关的记录下来。

一次多动作

就是比如你要循环100次,改成循环10次,每次自己手动写10个。
可能和多线程有关,但是我不学底层设计,我也不知道。
不管怎么说,确实能快一点。

猜你喜欢

转载自blog.csdn.net/HGGshiwo/article/details/105880423
今日推荐