我想知道以下简单程序的Big O运行时间是什么:
dates = [0,2,3,4]
sample_list = [1,2,3,4]
for i in range(0, 4):
sub_list = sample_list[i+1:]
if dates[i] in sub_list:
count += 1
运行时间是O(n)
还是O(n**2)
?我知道运行时间是O(n)
,因为我有一个for循环,但是if dates[i] in sub_list
语句怎么样?这是什么时间?
答案 0 :(得分:3)
你的循环似乎并不依赖于你的列表的长度,即使它可能应该。但是,对sample_list[i+1:]
的调用将取决于sample_list
以及dates[i] in sub_list
的大小。
因此,您的代码为O(n)
,其中n
的长度为sample_list
。