由于PHP对我来说比较简单,所以我希望能够对其中的算法进行基准测试以获得乐趣,并且我选择了阶乘因子。PHP中的算法基准没有意义吗?
与迭代方法相比,递归函数在速度上完全没有达到80!
,并且在迭代有稳定线条时它逐渐暴涨,实际上它是这样的(x = factorial,y = seconds) :
但在C/Java的(我只是执行测试)显示了相同的结果是只有1-5折,从海誓山盟,几乎相同的速度。
在脚本语言中以这种方式对算法进行基准测试毫无用处吗?
编辑:对于NullUserException:
function factrec($x) {
if($x <= 1) {
return $x;
} else {
return $x * factrec($x - 1);
}
}
要实现阶乘错的,如果递归版本是比迭代一个糟糕得多。 – NullUserException 2010-09-27 23:05:00
@NullUserException:我编辑了我的帖子,向您展示了它的一般代码。我设置了输出缓冲(ob_start()),并在回显10000000结果和迭代后刷新它。 – John 2010-09-27 23:07:03
如果我记得,PHP中的递归非常缓慢,所以这可以解释这里的区别。 – 2010-09-27 23:12:03