2012-09-09 17 views
6

Olası Çoğalt:
Cost of len() functionPython'da `len() işlevi için büyük-notasyon nedir?

liste halinde nesneler üzerinde len() iterate mu ve daha sonra sayımını dönmek? Böylece bir O (n) vermek.

Ya ....

bir piton liste kendisine eklenmiş ve ondan çıkarılmış ve daha sonra basitçe len() adlandırılan bu "sayısı" return herhangi nesnelerin sayısını tutuyor mu? Böylece O (1)'u vermek.

+1

'O (1)' ihtiyacınız olan şey: http://wiki.python.org/moin/TimeComplexity –

cevap

9

Bir Python listesi kendi uzunluğunu bilir; len, O(1) time alır. Lists are actually arrays, bağlantı listelerinin Lisp'de olduğu gibi değil, length doğrusal süreyi alır.

+2

"prova" http://wiki.python.org/moin/TimeComplexity – mgilson

8

__len__() tanımlayan tüm yerleşik nesneler için, O (1) olacaktır. Kendi nesneleriniz için __len__() uygularsanız, herhangi bir şey olabilir.

İlgili konular