读书人

这样能很快提高速度吗?解决方法

发布时间: 2012-03-13 11:21:12 作者: rapoo

这样能很快提高速度吗?
最近遇到这样一个递归的问题:

C/C++ code
void dfs(参数){if (表达式)        dfs(参数);           <--------else if (表达式)     for (int i = 0; i < 100; i++)     {          dfs(参数);          表达式;     }}

C/C++ code
void dfs(参数){     for (int i = 0; i < 100; i++)     {         if (表达式)              dfs(参数);  <--------         else if (表达式)              dfs(参数);         表达式;     }}


上面两段代码的结果是一样的,但是上面一段代码会比下面这一段快10倍以上,这是为什么呢?

[解决办法]
下面那个无论表达式是否成立,都要循环。
上面那个如果表达式不成立,就不循环了。而且编译器可以对上面那个进行优化,以提高速度。

读书人网 >软件架构设计

热点推荐