您如何用大 O 表示法描述以下内容?

rotors = [1,2,3,4,5 ...]
widgets = ['a', 'b', 'c', 'd', 'e' ...]

assert len(rotors) == len(widgets)

for r in rotors:
    for w in widgets:
        ...

    del widgets[0]

最佳答案

它是 O(n^2)。可以看到内循环执行次数为:

n + (n - 1) + (n - 2) + ... + 1

因为每次外循环迭代都会删除一个小部件。即 (n^2+n)/2,也就是 O(n^2)。

10-08 19:57