【问题标题】:Big Oh notation loop manipulation大哦符号循环操作
【发布时间】:2017-05-12 06:39:11
【问题描述】:

如果我有两个嵌套循环,其中外部有一个很大的 oh 符号 logn 并且内部有n 之一,这是否意味着整体概念将是log2n? 因为每次外循环执行时 n 都会改变,所以内循环在技术上运行 logn 次,但它循环 n 次。如果这个问题听起来很愚蠢,我很抱歉。这是循环的样子:

outer loop runs while n>0
   inner loops runs n times
   n=(1/4)n

如果我的格式关闭了,我很抱歉,我花了几分钟试图弄清楚如何在这里使用乳胶但无法完全破解它

【问题讨论】:

    标签: big-o nested-loops


    【解决方案1】:

    时间复杂度为O(n):

    First time, inner loop iterates n times
    Second time, inner loop iterates n/4 times
    Third time, inner loop iterates n/16 times
    ...
    K'th time, inner loop iterates n/(4^k) times
    

    总结一下:

    n + n/4 + n/16 + ... + n/4^k + ... + n/(4^log_4(n))
    

    这是sum of geometric series 与:

    a = n
    r = 1/4
    

    它的总和受以下限制:(n/3/4) = 4n/3 根据r < 1 的公式

    【讨论】:

    • 谢谢。所以,可以肯定的是,整体时间复杂度是nlogn?
    • 表示外循环运行logn
    • @DrewU 不,正如答案中明确解释的那样,如果O(n) 是时间复杂度。确保你明白为什么。
    • 是的,我知道内部循环的时间复杂度为 O(n)。我在问外循环是否确实具有 O(logn) 的时间复杂度
    • 因此外部和内部循环的整体复杂度会是 O(nlogn) 吗?内循环时间复杂度*外循环时间复杂度
    猜你喜欢
    • 2022-09-28
    • 2012-01-05
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多