2016-01-06 6 views
6

मैंने पाइथन आधिकारिक वेबसाइट पर सेट ऑपरेशंस की समय की जटिलता की तालिका देखी है। लेकिन मैं बस चाहता हूँ पूछना एक सेट के लिए एक सूची परिवर्तित करने, उदाहरण के लिए के समय जटिलता क्या,रूपांतरण सेट करने के लिए सूची की समय जटिलता क्या है?

l = [1, 2, 3, 4, 5] 
s = set(l) 

मैं एक तरह से जानते हैं कि यह वास्तव में एक हैश तालिका है, लेकिन वास्तव में यह कैसे काम करता है? क्या यह ओ (एन) है?

+0

आप इसका परीक्षण कर सकते हैं ... बस इसे बढ़ाने के लिए समय। (मुझे नहीं पता, लेकिन मुझे लगता है कि यह हैश टेबल में सम्मिलन के बाद से होना चाहिए ओ (1)।)। – Trilarion

+0

धन्यवाद मुझे लगता है कि मैं बहुत आलसी था, मुझे टाइमर मॉड्यूल –

+0

टाइमिट का उपयोग करने के लिए उपयोग करना चाहिए, टाइमर –

उत्तर

7

हां। सूची में इटरेट करना O(n) है और प्रत्येक तत्व को हैश सेट में जोड़ना O(1) है, इसलिए कुल ऑपरेशन O(n) है।

+4

वास्तव में खराब स्थिति में जब आपको हरश टक्कर मिलती है, तो हैश तालिका में सम्मिलन ओ (एन) होगा और ओ (एन^2) कुल मिलाकर सौभाग्य से यह लगभग कभी नहीं होता है। – Trilarion

+0

इसके अलावा, यदि आपके पास बहुत खराब स्मृति प्रबंधन या हैश बिनिंग और बहुत बड़ी सूची है, तो आपका प्रदर्शन ओ (एन) नहीं होगा। –

संबंधित मुद्दे