嵌套循环的替代方案?

时间:2019-01-14 06:14:41

标签: time-complexity c++14

例如,对于嵌套循环,是否有其他替代方法?下面的代码包含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;
    }
  }
}

2 个答案:

答案 0 :(得分:0)

基本上,对于密集数组以及需要访问所有元素的地方,没有什么可以做的。

对于具有许多零元素的数组,您可能需要研究各种稀疏数组格式(CRS,DLL等)。

可以做的另一件事是分析访问模式,根据您的任务,您通常不需要访问所有元素。 (例如矩阵乘法,该系统通常可以描述为稀疏DIA矩阵)

当所有其他方法均失败时,将CPU扔给它。

答案 1 :(得分:0)

OP上的问题太广泛了。它需要更多详细信息,即您要确切实现的目标。
这完全取决于您在3个循环中要做什么。为了优化代码以减少执行时间,您必须通过了解目标来优化算法。

是的,还有其他方法可以替换诸如递归等循环。但是,这不会减少执行时间,但是优化算法应该可以。