你如何用big-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]
Run Code Online (Sandbox Code Playgroud)
它是O(n ^ 2).您可以看到内循环执行的数量是:
n + (n - 1) + (n - 2) + ... + 1
Run Code Online (Sandbox Code Playgroud)
因为每个外部循环迭代都会删除一个窗口小部件.即(n ^ 2 + n)/ 2,即O(n ^ 2).