小循环中的大循环总是比大循环中的小循环快?

史蒂夫

我只是读了这篇文章,并且想知道是否可以得出结论:无论嵌套循环内的代码是什么,小循环内的大循环必须始终比大循环内的小循环运行得更快?举个例子。

int m, n; 
m = 1000000;
n = 10;

片段A

for (int i = 0; i < n; i++)         
    for (int j=0; j < m; j++)               
       {       
           DoSomething();        
       }

片段B

for (int j = 0; j < m; j++)               
    for (int i=0; i < n; i++)           
       {       
          DoSomething();          
       }

我们可以说,无论DoSomething()实际做什么,代码段A的运行总比代码段B的运行快?

更新
@stackmate指出,我想将此问题扩展为两个

  1. 当嵌套循环中的代码是DoSomething()时,这意味着DoSomething()与变量i和j无关。性能有何不同?

  2. 当嵌套循环中的代码是DoSomething(i,j)时,这意味着DoSomething(i,j)与变量i和j有关联。性能有何不同?

Cool_Coder

您的问题没有具体答案。决定是否快速的参数是您在循环中所做的事情。例如,假设您要添加2个数组并将它们存储在第三个数组中:

Code 1:
for(int i = 0; i < 1000; i++)
{
    for(int j = 0; j < 1000000; j++)
         C[i][j] = A[i][j] + B[i][j];
}

Code 2:
for(int i = 0; i < 1000000; i++)
{
    for(int j = 0; j < 1000; j++)
         C[j][i] = A[j][i] + B[j][i];
}

代码1将比代码2快得多。原因是缓存。请查看问题以获取更多详细信息。答案非常有用,在我这里没有必要再解释缓存的概念了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

小循环中的大循环总是比大循环中的小循环快?

来自分类Dev

为什么小循环中的大循环比大循环中的小循环快?

来自分类Dev

小循环的大O

来自分类Dev

在大循环中优化时间熊猫to_csv

来自分类Dev

使用NSJSONSerialization在大循环中使用ARC的内存问题

来自分类Dev

分割错误-大循环

来自分类Dev

用户输入的小循环Unix

来自分类Dev

GNU GMP大循环限制

来自分类Dev

Tkinter停止大循环功能

来自分类Dev

最小和最大循环

来自分类Dev

小循环运行得太频繁

来自分类Dev

for循环...在for循环中...在for循环中?

来自分类Dev

使用Python的对数加快大循环

来自分类Dev

Python:SQL 表中的巨大循环

来自分类Dev

python memoryerror - 大循环xml到mongodb

来自分类Dev

Javacsript for循环中的for循环

来自分类Dev

While循环中的For循环

来自分类Dev

循环中的VBScript循环

来自分类Dev

Matlab 循环中的循环

来自分类Dev

Java-多线程一个大循环

来自分类Dev

大循环内的Unity IOC和Factory模式

来自分类Dev

Linux内核的最大循环设备是多少?

来自分类Dev

在循环中更改For循环的长度

来自分类Dev

for循环中的循环变量错误

来自分类Dev

for循环中的循环变量错误

来自分类Dev

while循环中的foreach循环

来自分类Dev

while 循环中的 for 循环问题

来自分类Dev

练习 cobol(循环中循环)

来自分类Dev

在 for 循环中循环 else 语句?