mac*_*e_1 1 c recursion performance
假设我们有一个字符串,我们想以相反的顺序打印它。在这种情况下,递归似乎是更快的选择,因为字符串被“遍历”一次,而通常的循环方法会“遍历”两次。
对于这类问题,有什么理由不喜欢递归?在大输入的情况下,递归是否会造成某种不利?
考虑以下代码:
#include <stdio.h>
#include <string.h>
void printReverse_1(const char *str)
{
if (!*str)
return;
printReverse_1(str + 1);
putchar(*str);
}
void printReverse_2(const char *str)
{
const char *tmp = str + strlen(str) - 1;
while (tmp > str)
{
putchar(*tmp--);
}
putchar(*tmp);
}
int main(void)
{
printReverse_1("abc");
putchar('\n');
printReverse_2("abc");
putchar('\n');
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |