例如,对于嵌套循环,是否有其他替代方法?下面的代码包含3个嵌套的for循环,这会增加程序的时间复杂度。有更好的方法获得类似结果吗?
for(int i=1;i<=50;i++){
for(int j=1;j<=50;j++){
for(int k=1;k<=50;k++){
cout<<i<<" "<<j<<" "<<k<<endl;
}
}
}
答案 0 :(得分:0)
基本上,对于密集数组以及需要访问所有元素的地方,没有什么可以做的。
对于具有许多零元素的数组,您可能需要研究各种稀疏数组格式(CRS,DLL等)。
可以做的另一件事是分析访问模式,根据您的任务,您通常不需要访问所有元素。 (例如矩阵乘法,该系统通常可以描述为稀疏DIA矩阵)
当所有其他方法均失败时,将CPU扔给它。
答案 1 :(得分:0)
OP上的问题太广泛了。它需要更多详细信息,即您要确切实现的目标。
这完全取决于您在3个循环中要做什么。为了优化代码以减少执行时间,您必须通过了解目标来优化算法。
是的,还有其他方法可以替换诸如递归等循环。但是,这不会减少执行时间,但是优化算法应该可以。