是否有任何设计模式或其他方法来替换大量的嵌套循环? 唯一的目的是提高性能。
e.g
for (int i=0; i<2000; i++)
{
for (int j=0; j<2000; j++)
{
for (int k=0; k<2000; k++)
{
}
}
}
答案 0 :(得分:5)
一般没有。设计模式更多地是关于如何组织代码以使其易于理解,可维护的可扩展性等。凭借这一点,您可能最终得到更高效的代码,但不一定。
如果你的算法要求你访问大小为2000的三维数据结构中的每个元素,那么没有设计模式可以提供帮助,你只需要一个n ^ 3算法,你就无法做到这一点。
唯一的改进范围是,如果您的算法结果是天真的,并且可能会访问比严格要求更多的元素。上面的哈里斯工作通过询问你是否在寻找;如果是这样,也许搜索算法可以更高效,但同样,这不是关于设计模式的问题。
答案 1 :(得分:1)
for (int x=0; x < 2000*2000*2000; x++)
{
// you can calculate here real values of i,j,k if you need this for smth
// do something
}