यह सवाल एक अतीत परीक्षा कागज मैं सिर्फ यह जानना चाहते हैं मैं सही रास्तेसमय जटिलता
1. int i=1;
2. while (i <= n) {
3. for (int j=1; j<10; j++)
4. sum++;
5. i++;
6. }
7. for(int j = 1; j <= n; j++)
8. for(int k = 1; k <= n; k=k*2)
9. sum++;
1.) कितनी बार बयान 4 निष्पादित किया जाता है पर हूँ चाहता हूँ से संशोधन उद्देश्यों के लिए है?
ए हे (एन)
बी O (n^2)
सी हे (लॉग एन)
डी O (n n लॉग इन करें) ऊपर
यहाँ मैं की
ई कोई भी ए
लाइन की वजह से2.) स्टेटमेंट 9 कितनी बार निष्पादित किया गया है?
ए हे (एन)
बी O (n^2)
सी हे (लॉग एन)
डी O (n n लॉग इन करें) ऊपर
की
ई कोई भी 8 (के = के * 2) मैंने सी
3.) पूरे कोड खंड का चलने का समय क्या है?
ए हे (एन)
बी O (n^2)
सी हे (लॉग एन)
डी O (n लॉग इन करें n)
के बाद से हे (एन) + O (logn) = ओ (एन) इसलिए मैंने एक
@Neil: आपको ऐसा क्यों लगता है? (संभवतः यह निश्चित रूप से परीक्षा पत्र की पूरी नहीं है।) – ShreevatsaR
@ श्रीवत्सरा: शायद क्योंकि बड़ा-ओ न तो मात्रा है ("कितनी बार है ...?") न ही एक अवधि ("चलने का समय क्या है का ...?")। बहुत बेहतर होगा "समय की जटिलता क्या है?"। – paxdiablo
@paxdiablo: यह कहना बिल्कुल सही है कि "समय कथन 4 की संख्या निष्पादित की गई है ओ (एन)"। यही है, मात्रा/कार्य 10 एन ओ (एन) है। (एक पूरी तरह से अलग बात यह है कि शायद पेपर को थेटा के लिए पूछा जाना चाहिए था, या छोटे से सही ओ (।) के लिए कहा था, लेकिन यह पाठ्यक्रम के स्तर के आधार पर क्षमा करने योग्य है।) – ShreevatsaR