这里tmp是一个列表
res=[]
for e in tmp:
if not(e in res):
res.append(e)
对于此代码,时间复杂度是多少?为什么?
答案 0 :(得分:0)
for e in res:
此循环计算了len(res)次(称为n)
if not(e in res):
搜索(由于未对res进行排序)在最坏的情况下也被计算了n次,因为res最多可以包含n个元素
res.append(e)
和append()方法的复杂度为O(1),
所以这个函数的复杂度是O(n ^ 2)
如果不必维护订单,可以使用以下方法使其更快:
res = list(set(tmp))
如果您必须:
from ordered_set import OrderedSet
res = list(OrderedSet(tmp))