【发布时间】:2017-11-28 05:54:51
【问题描述】:
我是 C 编程的初学者,所以我的时间复杂度函数需要一些帮助。
int function(int n)
{ if (n <= 1)
return n;
int i = random(n-1);
return test(i) + test(n - 1 - i);
}
我不知道如何处理这个问题,因为具有 O(1) 复杂度的随机函数返回随机数。
【问题讨论】:
-
你的问题是什么?
-
你还有什么问题?
-
请注意,您不会显示
random()或test(),而且这两个函数都不是由C 标准定义的。这使得很难知道他们在做什么。random()是否返回 0 与其参数之间的随机整数?这里没有递归,除非function()被test()或random()调用——如果它们确实调用function(),那么它是间接递归而不是直接递归。 (test()是function()的拼写错误,还是function()是test()的拼写错误?如果是这样,那么一旦你修复了命名,你就可以直接递归了。)
标签: c algorithm recursion random time-complexity