列表上的修剪操作的时间复杂度是什么(以下示例)?
def function():
list = [1, 2, 3, 4, 5]
x = list[2:]
print(x)
我猜这是线性O(n),但是不确定是否是这种情况。
答案 0 :(得分:1)
切片列表的复杂度是
Slice | l[a:b] | O(b-a) | l[1:5]:O(l)/l[:]:O(len(l)-0)=O(N)
具有列表操作的示例
def is_unique1 (alist : [int]) -> bool:
for i in range(len(alist)): #O(N) - for every index; see * below
if alist[i] in alist[i+1:]: #O(N) - index+add+slice+in: O(1)+O(1)+O(N)+O(N) = O(N)
return False #O(1) - never executed in worst case; ignore
return True #O(1) - always executed in worst case; use
看看this可能对您有帮助