Questo è quello che ho finora:Conte occorrenza in un elenco con il tempo la complessità di O (nlogn)
alist=[1,1,1,2,2,3,4,2,2,3,2,2,1]
def icount(alist):
adic={}
for i in alist:
adic[i]=alist.count(i)
return adic
print(icount(alist))
ho fatto qualche ricerca per scoprire che la complessità temporale di list.count() è O (n), quindi, questo codice sarà O (n^2).
C'è un modo per ridurre questo a O (nlogn)?
Sede [ 'collections.Counter'] (http: // docs .python.org/3/library/collections.html # collections.Counter). È lì esattamente per questo tipo di lavoro. – falsetru
Se si incrementa 'adic [i]', la complessità dovrebbe essere O (n). – Barmar
Ma come faccio a sapere la complessità del tempo? –