【问题标题】:I'm trying to find the complexity of the following algorithm:我试图找出以下算法的复杂性:
【发布时间】:2021-11-07 09:58:09
【问题描述】:

我正在尝试找出以下算法的复杂性:

count = 1
j=0
for i = 1 to 100 do
        count += i
for k = 1 to n do
        count *= k
while j < n do
        count +=j
        j *= 2;
end while

【问题讨论】:

  • 对于第一个循环的常量数为 100,它的复杂度为 100,对于第二个循环,它有 n 次。在 While 循环中,因为您没有显示 j 的初始值,所以我不能说它的复杂性。所以,到这个级别,算法有 O(100+n)

标签: algorithm complexity-theory


【解决方案1】:

对于第一个for循环,时间复杂度是常数O(100)。 第二个 for 循环的时间复杂度为 O(n)。 while 循环也有 O(n) 的时间复杂度。 所以总时间复杂度是O(100+n+n) = O(n)

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 2014-10-12
    相关资源
    最近更新 更多