Ketika orang mengatakan set memiliki O (1) memeriksa keanggotaan, mereka berbicara tentang kasus rata - rata . Dalam kasus terburuk (ketika semua nilai hash bertabrakan) pengecekan keanggotaan adalah O (n). Lihat wiki Python pada kompleksitas waktu .
The artikel Wikipedia mengatakan kasus terbaik waktu kompleksitas untuk tabel hash yang tidak resize adalah O(1 + k/n). Hasil ini tidak secara langsung berlaku untuk set Python karena set Python menggunakan tabel hash yang mengubah ukuran.
Sedikit lebih jauh pada artikel Wikipedia mengatakan bahwa untuk kasus rata - rata , dan dengan asumsi fungsi hashing seragam sederhana, kompleksitas waktu adalah O(1/(1-k/n)), di mana k/ndapat dibatasi oleh konstanta c<1.
Big-O hanya merujuk pada perilaku asimptotik sebagai n → ∞. Karena k / n dapat dibatasi oleh konstanta, c <1, tidak bergantung pada n ,
O(1/(1-k/n))tidak lebih besar dari O(1/(1-c))yang setara dengan O(constant)= O(1).
Jadi dengan asumsi hashing sederhana yang seragam, rata-rata , memeriksa keanggotaan untuk set Python adalah O(1).
setpelaksanaan sebenarnya adalahdictdengan nilai-nilai boneka, dan itu bisa dioptimalkan kemudian.