जब लोग कहते हैं कि सेट में O (1) सदस्यता-जाँच है, तो वे औसत मामले के बारे में बात कर रहे हैं । में सबसे खराब मामले (जब सभी टुकड़ों में बंटी मूल्यों टकराने) सदस्यता-चेकिंग हे (एन) है। समय जटिलता पर अजगर विकी देखें ।
विकिपीडिया लेख कहते हैं सबसे अच्छा मामले में एक हैश तालिका आकार है यह नहीं है कि के लिए समय जटिलता O(1 + k/n)
। यह परिणाम सीधे पायथन सेट पर लागू नहीं होता है क्योंकि पायथन सेट एक हैश तालिका का उपयोग करता है जो आकार बदलता है।
विकिपीडिया लेख पर थोड़ा आगे कहा गया है कि औसत मामले के लिए, और एक साधारण वर्दी हैशिंग फ़ंक्शन को संभालने के लिए, समय जटिलता है O(1/(1-k/n))
, जहां k/n
एक निरंतरता द्वारा बाध्य किया जा सकता है c<1
।
Big-O केवल n → to के रूप में स्पर्शोन्मुख व्यवहार को संदर्भित करता है। चूँकि k / n एक स्थिर, c <1 से घिरा हो सकता है, n से स्वतंत्र ,
O(1/(1-k/n))
इससे बड़ा कोई नहीं = के O(1/(1-c))
बराबर है ।O(constant)
O(1)
इसलिए, एक समान सरल हैशिंग को मानते हुए, औसतन , पायथन सेटों की सदस्यता-जाँच है O(1)
।
set
कार्यान्वयन वास्तव मेंdict
डमी मूल्यों के साथ था , और यह बाद में अनुकूलित हो गया।