【发布时间】:2016-03-07 11:15:18
【问题描述】:
我想知道如何使用 T(n) .. 和类似的东西来查找这些函数的复杂性 .. 因为我只能猜测。
第一个函数:
int f(int n)
{
if (n == 1)
return 1 ;
return 1 + f(f(n-1));
}
时空复杂度 ??
第二个功能:
函数 f() 的时空复杂度 ??? :
void f(int n)
{
int i ;
if(n < 2) return ;
for(i = 0 ; i < n/2 , i+= 5)
printf("*");
g(n/3);
g(n/3);
}
void g(int n)
{
int i ;
for(i = 0 ; i < n ; i++)
printf("?") ;
f(3*n/2);
}
非常感谢 :)
【问题讨论】:
-
您不仅可以猜测,还可以针对不同的值进行测量,而不是在锁定图表后进行有根据的猜测,或者尝试使用不同类型的函数对结果进行插值?
-
您好,stackexchange 网络。人们应该表现出他们在这里解决问题所付出的努力。你试过什么,你在哪里卡住了?
-
@G.Bach 我尝试使用像 T(n) 这样的哮喘方程来解决它.. 但我不知道如何继续
-
@AmeenAli 你是否卡住真的不是问题——只要记住尽可能简洁地描述你做了什么以及为什么卡住了;你越清楚地描述你被卡住的原因,更好的人就能帮助你学习一些东西,而不仅仅是发布解决方案。
标签: algorithm performance time-complexity complexity-theory