中国开发网: 论坛: 程序员情感CBD: 贴子 511998
bjwf
技术贴:代码优化
typedef double data_type;

data_type sum1(data_type data[], unsigned int N)
{
unsigned int i;
data_type sum = 1;
for (i = 0; i < N; i++)
{
sum = sum *data[i];
}
return sum;
}

data_type sum2(data_type data[], unsigned int N)
{
unsigned int i;
data_type sum = 1;
unsigned int NN = N-2;
for (i = 0; i < NN; i+=2)
{
sum *= data[i];
sum *= data[i+1];
}
for ( ;i < N; i++)
sum *= data[i];
return sum;
}
data_type sum2x2(data_type data[], unsigned int N)
{
unsigned int i;
data_type sum1 = 1, sum2 = 1;
unsigned int NN = N-2;
for (i = 0; i < NN; i+=2)
{
sum1 *= data[i];
sum2 *= data[i+1];

}
for ( ;i < N; i++)
sum1 *= data[i];
return sum1 * sum2;
}

sum1, sum2 和sum2x2哪个快一些,为啥?

sum2 比 sum1 快好理解,但是 sum2x2为啥比sum2 快呢?
如果把 data_type 由double换成 int 结果如何?

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录