微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过算法时间复杂度分析得出Big O符号

如何解决通过算法时间复杂度分析得出Big O符号

hexColor(0x24B491)   // r 0.141 g 0.706 b 0.569 a 1.0

我做了以下事情: 第3行和第4行各计数1个。我不知道计算5和6行将被检查的次数。既然是递归的,我该如何得出大的O表示法?

解决方法

您可能只是通过在一张纸上写下一些小的输入(例如i == 3)所调用的函数的样子就可以最好地理解这一点:

            m(3)
       /           \
    m(2)           m(2)
  /      \       /      \
m(1)     m(1)  m(1)     m(1)

应该清楚的是,在每个级别,函数调用的数量都增加了一倍。这是指数行为,因此复杂度大致为O(2^n),其中n是输入值。

,

递归公式为:

现在,展开公式并使用数学归纳法:

对于i=1,我们假设有T(1) = 1的恒定时间计算。因此:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。