我有困难,了解如何开发递推关系。我给出的代码是时间复杂度和递推关系
int result = bizarre(n, n);
public static int bizarre (int first, int second)
{
if (second <= 1)
{
int temp = 0;
for (int i = 0; i < first; i++)
temp += i;
return temp;
}
return bizarre (first, second-1);
}
从什么,我的理解是,
T(n) = n + 1
T(1) = 1
,但似乎并不正确。有人可以帮我吗?
呀,这两个参数确实让我困惑,我不知道在这样的关系是否还是不写会工作。我明白你是如何得到经常性案件的,但你能否解释基本案例?我似乎无法把头围住它。另外,你将如何去获得时间复杂性?我没有做过类似的问题,所以我很抱歉,如果这对我来说应该很简单。 – Saff
在基本情况下,你只需要一个运行“第一次”的循环,每个都做O(1)。我用* m *表示你的第一个参数,所以完成的工作是O(m)。 – templatetypedef
谢谢,这清除了它。最后这给了我一些混乱的一个问题是第一行,其中为奇异的参数均为“N”,就这并不意味着第一和第二是导致基础情况为T(1,1)= O(相同的值1)? – Saff