2010-03-04 7 views
6

Nur frage mich, was die Laufzeit-Suche für set() ist? O (1) oder O (n)?set() Laufzeit in Python

wenn ich

x = set() was ist die Laufzeit von

wenn "a" in x haben: Druck ein in diesem Satz!

Antwort

9

set wird unter Verwendung einer Hash implementiert, so dass die Lookup ist im Durchschnitt der Nähe von O (1). Der schlimmste Fall ist O (n), wobei n Objekte kollidieren Hashes haben.

+5

Ich fand eine Referenz: http://wiki.python.org/moin/TimeComplexity –

+0

Beachten Sie, dass die Hash-Funktionen und Kollisionsauflösung Algorithmus gewählt werden, um den O (n) -Fall viel weniger bedrohlich zu machen, als es klingt. –