设计模式替换嵌套循环

时间:2010-12-24 12:05:20

标签: algorithm design-patterns

是否有任何设计模式或其他方法来替换大量的嵌套循环? 唯一的目的是提高性能。

e.g

for (int i=0; i<2000; i++)
{
    for (int j=0; j<2000; j++)
    {
       for (int k=0; k<2000; k++)
       {

       }
    }
}

2 个答案:

答案 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
}