包括随机性在内的复杂性

问题描述 投票:0回答:1

我有以下三个循环:

for i in range(m)
    for j in range(n)
        r = random(0,l)
        for k in range(r)
            
        l = l-r

我想知道这里的复杂性是什么,最后一个是否等于

O(1)
?前两个循环应该是
O(m*n)
l,m,n
当然是整数。

time-complexity computer-science complexity-theory
1个回答
0
投票

𝑙的原始值将最大值设置为内循环可以进行迭代的total次数。换句话说,𝑟将得到的所有值的总和不能超过𝑙的原始值。

因此,对于外部两个循环,我们有 θ(𝑛𝑚),并添加内部循环迭代总数的最坏情况,我们得到 O(𝑛𝑚+𝑙) 的最坏情况时间复杂度。

注意:当 random 始终返回 0 时,就会出现

best
情况。在这种情况下,我们得到 θ(𝑛𝑚) 作为时间复杂度。

© www.soinside.com 2019 - 2024. All rights reserved.