.net - Is Enumerable.ElementAt<TSource> O(1) for HashSet? -


क्या HashSet.ElementAt O (1) में कार्यान्वयन है और यदि नहीं, तो यह क्या है?

नहीं, यह ओ (एन) है IEnumerable & lt; T & gt; पर सभी विस्तार विधियां, ओ (एन) के ज़रिए, (क्योंकि केवल एक ही चीज़ IEnumerable & lt; T & gt; कर सकती है ... गणना करें) । हालांकि, जैसा कि टिप्पणियों में बताया गया है, वे एक अंतरफलक पर डालने का प्रयास करते हैं जो ऑपरेशन को तेज़ कर सकते हैं (उदाहरण के लिए, ElementAt ) को IList & lt; T & gt; ओ (1) ऑपरेशन को लागू करने के लिए) HashSet & lt; T & gt; जो IList & lt; T & gt; को वैसे भी लागू नहीं करता है

HashSet & lt; टी & gt; "ElementAt" की अवधारणा वैसे भी वास्तव में समझ में नहीं आता है, क्योंकि इसमें कोई "ऑर्डरिंग" नहीं है आप मूल रूप से सिर्फ यादृच्छिक तत्व प्राप्त कर रहे हैं।


Comments