İnsanlar setlerin O (1) üyelik kontrolüne sahip olduğunu söylediklerinde, ortalama durumdan bahsediyorlar . En kötü durumda (tüm karma değerler çarpıştığında) üyelik denetimi O (n) 'dir. Zaman karmaşıklığı konusunda Python wiki'sine bakın .
Wikipedia makalesi diyor en iyi durumda boyutlandırma olduğunu olmayan bir karma tablo için zaman karmaşıklığı O(1 + k/n)
. Python kümeleri yeniden boyutlandırılan bir karma tablo kullandığından bu sonuç doğrudan Python kümeleri için geçerli değildir.
Wikipedia makalesinde biraz ilerisinde, için söylüyor ortalama durumda ve zaman karmaşıklığı basit bir üniforma karma işlevi varsayarak O(1/(1-k/n))
, k/n
bir sabit tarafından sınırlandırılmış olabilir c<1
.
Big-O sadece n → ∞ gibi asimtotik davranışı ifade eder. K / n , n'den bağımsız bir sabit ile c <1 ,
O(1/(1-k/n))
= O(1/(1-c))
ile eşit olandan daha büyük değildir .O(constant)
O(1)
Yani tekdüze basit karma varsayım, ortalama olarak , Python setleri için üyelik kontrolüdür O(1)
.
set
uygulama aslında ididict
model değerlerle ve daha sonra optimize var.