如何计算以下算法的时间复杂度

用户名

如何计算以下算法的时间复杂度。我尝试过,但由于递归调用而感到困惑。

power (real x, positive integer n)
//comment : This algorithm returns xn, taking x and n as input
{
    if n=1 then
    return x;
    y = power(x, |n/2|)
    if n id odd then
    return y*y*x //comment : returning the product of y2 and x
    else
    return y * y //comment : returning y2
}

可以用简单的步骤来解释一下。

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

为了弄清楚递归函数的时间复杂度,您需要计算将要根据某些输入变量进行的递归调用的次数N

在这种情况下,每个调用最多进行一个递归调用。调用次数约为O(log 2 N),因为每次调用都会减少N一半。

递归函数的其余部分为O(1),因为它不依赖N因此,您的函数的时间复杂度为O(log 2 N)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用此算法的大O表示法计算时间复杂度

来自分类Dev

如何计算最不常见祖先算法的时间复杂度?

来自分类Dev

计算以下算法的复杂度?

来自分类Dev

算法的时间复杂度计算

来自分类Dev

计算迭代算法的时间复杂度

来自分类Dev

如何计算此算法的时间复杂度

来自分类Dev

以下算法的时间复杂度?

来自分类Dev

算法的时间复杂度

来自分类Dev

计算平方根算法的时间复杂度

来自分类Dev

尝试计算算法时间复杂度

来自分类Dev

如何计算DFS算法的时间复杂度?

来自分类Dev

如何计算时间复杂度?

来自分类Dev

我的算法的时间复杂度计算

来自分类Dev

如何计算以下函数的时间复杂度?

来自分类Dev

以下算法的时间复杂度是多少?

来自分类Dev

如何确定以下算法的时间复杂度?

来自分类Dev

尝试计算算法时间复杂度

来自分类Dev

时间复杂度算法

来自分类Dev

如何计算此递归算法的时间复杂度

来自分类Dev

算法的时间复杂度

来自分类Dev

如何计算此算法的时间复杂度

来自分类Dev

如何计算时间复杂度?

来自分类Dev

计算此特定算法的时间复杂度

来自分类Dev

如何计算算法时间复杂度

来自分类Dev

算法的时间复杂度

来自分类Dev

计算算法的时间复杂度

来自分类Dev

以下算法的复杂度

来自分类Dev

算法时间复杂度的计算方法

来自分类Dev

计算递归算法的时间复杂度