Algorithm 替换嵌套循环的设计模式
是否有任何设计模式或其他方法来替换大量嵌套循环? 唯一的目的是提高性能 e、 gAlgorithm 替换嵌套循环的设计模式,algorithm,design-patterns,Algorithm,Design Patterns,是否有任何设计模式或其他方法来替换大量嵌套循环? 唯一的目的是提高性能 e、 g for(inti=0;ifor(intx=0;x
for(inti=0;ifor(intx=0;x<2000*2000*2000;x++)
{
//如果需要smth,可以在这里计算i,j,k的实际值
//做点什么
}
用于(int x=0;x<2000*2000*2000;x++)
{
//如果需要smth,可以在这里计算i,j,k的实际值
//做点什么
}
一般来说不是。设计模式更多的是关于如何组织代码,使其易于理解、可维护、可扩展等。因此,您可能最终得到更高效的代码,但不一定如此
如果您的算法要求您访问大小为2000的三维数据结构中的每个元素,那么没有设计模式可以提供帮助,您只有一个n^3算法,对此您无能为力
唯一需要改进的地方是,如果您的算法被证明是幼稚的,并且可能访问了比严格要求更多的元素。上面的harrisunderwork通过询问您是否正在搜索来暗示这一点;如果是这样,可能会使搜索算法更有效,但同样,这不是关于设计模式的问题。不。设计模式更多的是关于如何组织代码,使其易于理解、可维护、可扩展等。因此,您可能会得到更高效的代码,但不一定如此
如果您的算法要求您访问大小为2000的三维数据结构中的每个元素,那么没有设计模式可以提供帮助,您只有一个n^3算法,对此您无能为力
唯一需要改进的地方是,如果您的算法被证明是幼稚的,并且可能访问了比严格要求更多的元素。上面的harrisunderwork通过询问您是否正在搜索来暗示这一点;如果是这样,也许可以提高搜索算法的效率,但这不是关于设计模式的问题。您是什么在循环中做什么?您是否使用此算法搜索某些内容?设计模式可能不会提高性能,只有改进算法,性能才会提高。设计模式实际上可能会由于堆栈开关等的开销而影响性能。您在循环中做什么?您是否使用此算法搜索某些内容?设计模式可能不会提高性能,只有改进算法,性能才会提高。设计模式实际上可能会由于堆栈开关等的开销而影响性能。您不能使用此逻辑在三维数据类型中搜索。在迭代25%的项后,您的x值将变为无穷大或负值,因为int为32位,表示大约2*10^9(选择时签名)但是你需要迭代到8*10^9@Saeed-您的注释取决于未指定的语言和计算机体系结构。您不能使用此逻辑在三维数据类型中搜索。在迭代25%的项后,您的x值将变为无穷大或负值,因为int为32位,表示大约2*10^9(选择时签名)但是你需要迭代到8*10^9@Saeed-您的评论取决于未指定的语言和机器体系结构。
for (int i=0; i<2000; i++)
{
for (int j=0; j<2000; j++)
{
for (int k=0; k<2000; k++)
{
}
}
}
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
}