读书人

100解决方法

发布时间: 2012-02-04 15:43:08 作者: rapoo

100
for(...)
{
if(par > = n)
{
par=par%n;
}
if(array[par])
{
if(array[par]
{
.....
}
}
}
----------------------------------------------
for(...)
{
if(array[par%n])
{
if(array[par%n]
{
.....
}
}
}

//////////////////////////////////////////////
上述两段代码第一种情况减少了求余次数,肯定是比第二段代码快,但是如果程序中使用第一种情况,整体程序会比使用第二种的快4倍,请问为什么会有这么大的差别呢??谢谢


[解决办法]
唉,智商有限
愣是没看懂两种方法是啥
惭愧
[解决办法]
还要看编译器的优化程度

无法精确比较 没什么意义
[解决办法]
具体快多少倍还要看看具体机器或者编译器,没有必要写成第2种情况那样,

也感觉这个问题意义不大。
[解决办法]
up
[解决办法]
...

[解决办法]
mark
[解决办法]
if(par > = n)
{
par=par%n;
}
4倍?
不明白。。。。
[解决办法]
嘛意思?
[解决办法]

[解决办法]
第二个执行了两次求余运算,第一个有可能只做比较判断

读书人网 >C++

热点推荐