for(int i=0;i <1000;i++)
{
for(int y=0;y <100;y++)
{
for(int z=0;z <10;z++)
{
function(i,y,z);
}
}
} 为什么把循环次数多放到最里层就能提高运行速率哦?
{
for(int y=0;y <100;y++)
{
for(int z=0;z <10;z++)
{
function(i,y,z);
}
}
} 为什么把循环次数多放到最里层就能提高运行速率哦?
(1)for(int i=0;i <1000;i++)
{
for(int y=0;y <100;y++)
{
for(int z=0;z <10;z++)
{
function(i,y,z);
}
}
} for(int i=0;i <1000;i++)
{
for(int y=0;y <100;y++)
{
for(int z=0;z <10;z++)
{
function(i,y,z);
}
}
} (2)首先可以肯定的是这两种方式(代码(1),(2))它们执行function(i,y,z)的次数相同。
我们从赋值,比较,自加的次数上分析:设这三者之和为O(1)代码(1)
1000 + 100000 + 1000000 = 1101000 个O(1)代码(2)
10 + 1000 + 1000000 =1001010 个O(1)(1) - (2) = 99990 个
{
for(int y=0;y <100;y++)
{
for(int z=0;z <1000;z++)
{
function(i,y,z);
}
}
}