2012-02-10 18 views
6

निम्नलिखित कोड की जटिलता क्या है?सी ++ में set_intersection की जटिलता क्या है?

set<int> S1, S2, ans; 
set_intersection(S1.begin(), S1.end(), S2.begin(), S2.end(), inserter(ans, ans.begin())) 

जहां S1 और S2 कुछ non_empty सेट कर रहे हैं और ans एक खाली सेट है।

मुझे पता है कि एक सेट में एक क्रमबद्ध रेंज डालने रैखिक है; लेकिन इंसर्टर रैखिक का उपयोग कर भी डालने जा रहा है?

उत्तर

7

इंसर्टर याद करता है कि आखिरकार यह प्रत्येक आइटम कहां डाला गया और अगले आइटम को उसी स्थान पर डालने का प्रयास करता है। यह ओ (1) है यदि यह सही जगह है।

जिसका मतलब है कि घुमावदार को एक क्रमबद्ध रेंज की प्रतिलिपि बनाना रैखिक समग्र है, तो आप यहां अच्छे हैं।

+0

मैं थोड़ी उलझन में हूं: ओ (1) रैखिक के बजाय स्थिर नहीं है? –

+1

@ एंटोनियोपेरेज़: यह लगातार प्रति प्रविष्टि है; रैखिक समग्र। –

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