दिलचस्प पोस्ट
System.out.println () द्वारा कंसोल करने के लिए मुद्रित सामग्री को कैसे हटाएं? आर में एक साथ दो हिस्टोग्राम कैसे छापें? IPhone पर गैर-शक्ति-दो बनावट को प्रस्तुत करना कैसे Excel में DataTable निर्यात करने के लिए रेल 4: टर्बो-लिंक के साथ $ (दस्तावेज़) .ready () का उपयोग कैसे करें जेपीए हैशोड () / बराबर () दुविधा गिट के साथ एक विशिष्ट टैग डाउनलोड करें Java.lang.Thread.interrupt () क्या करता है? कस्टम बटन स्थिति कैसे जोड़ें I386 और x86-64 पर यूनिक्स और लिनक्स सिस्टम कॉल के लिए कॉलिंग सम्मेलनों क्या हैं I Str_replace का उपयोग करना ताकि यह केवल पहले मैच पर ही काम करे? रेल पर रूबी में होस्टनाम या आईपी प्राप्त करना MKMapView या UIWebView ऑब्जेक्ट पर छूने वाले घटनाओं को कैसे रोकें? पायथन में सिंगल आइटम बार-बार एन टाइम्स की सूची बनाएं JavaFX सही स्केलिंग

नेस्टेड लूप का बिग-ओ क्या है, जहां आंतरिक लूप में पुनरावृत्तियों की संख्या बाहरी लूप की वर्तमान पुनरावृत्ति से निर्धारित होती है?

निम्न नेस्टेड लूपों की बिग-ओ समय की जटिलता क्या है:

for(int i = 0; i < N; i++) { for(int j = i + 1; j < N; j++) { System.out.println("i = " + i + " j = " + j); } } 

क्या यह ओ (एन ^ 2) अभी भी होगा?

वेब के समाधान से एकत्रित समाधान "नेस्टेड लूप का बिग-ओ क्या है, जहां आंतरिक लूप में पुनरावृत्तियों की संख्या बाहरी लूप की वर्तमान पुनरावृत्ति से निर्धारित होती है?"

हां, यह अभी भी ओ (एन ^ 2) है, इसमें एक छोटे स्थिर कारक है, लेकिन यह ओ नोटेशन को प्रभावित नहीं करता है।

हाँ। परिभाषा के अनुसार बिग-ओ: ओ (एफ (एन)) की परिभाषा को याद करते हैं कि कुछ स्थिर कश्मीर के लिए रन टाइम टी (एन)केएफ (एन) इस स्थिति में, चरण की संख्या (एन -1) + (एन -2) + … + 0 होगी , जो 0 से एन -1 की राशि को दोबारा बदलती है; ये है

टी (एन) = (एन -1) ((एन -1) +1) / 2

इसे पुनर्व्यवस्थित करें और आप देख सकते हैं कि टी (एन) हमेशा ≤ 1/2 (n²) होगा; परिभाषा के अनुसार, इस प्रकार टी (एन) = हे (एन²)

यदि आप System.out.println की उपेक्षा करते हैं, तो यह N स्क्वायर है यदि आप मानते हैं कि उस समय के द्वारा अपने उत्पादन में रैखिक होगा (जो निश्चित रूप से नहीं हो सकता है), मुझे संदेह है कि आप (ओ (एन ^ 2) * लॉग एन के साथ समाप्त होते हैं)।

मैं यह नहीं कहता हूं कि पिकदार होना चाहिए, लेकिन सिर्फ यह इंगित करने के लिए कि जटिलता को पूरा करते समय आपको स्पष्ट रूप से छोरों को ध्यान में रखने की ज़रूरत नहीं है – आपको उन चीजों की जटिलता को देखने की जरूरत है जो आप भी कहते हैं।

हाँ, यह एन स्क्वायर होगा। चरणों की वास्तविक संख्या 1 से एन की राशि होगी, जो .5 * (एन -1) ^ 2 है, अगर मैं गलत नहीं हूं। बिग ओ केवल उच्चतम निपुण और कोई स्थिर नहीं खाते को लेता है, और इस प्रकार, यह अभी भी एन वर्ग है।

यदि आपके पास एन = 10 था, तो आप पुनरावृत्तियों होंगे: 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 (यह है: दस पुनरावृत्तियों से अधिक नौ पुनरावृत्तियों प्लस आठ पुनरावृत्तियों … आदि)।

अब, आपको इसके अलावा में ढूंढने की जरूरत है कि आप कितनी बार एन (10 उदाहरण में) प्राप्त कर सकते हैं:

1: (10), 2: (9 + 1), 3: (8 + 2), 4: (7 + 3), 5: (6 + 4) जो 5 गुना है … और बाकी 5 पुनरावृत्त हैं।

अब आप जानते हैं कि आपके पास पांच दसियों + 5 है:

10 (5) +5

एफ (एन) (या एन) के संदर्भ में, हम आसानी से यह देख सकते हैं कि यह होगा:

f (n) = n (n / 2) + n / 2 = (n ^ 2) / 2 + n / 2 = (n ^ 2 + n) / 2 … ये बिल्कुल नेस्टेड लूप की जटिलता है

लेकिन, बिग हे के असीम्पटोटिक व्यवहार को देखते हुए, हम एफ (एन) के कम महत्वपूर्ण मानों से छुटकारा पा सकते हैं, जो कि एकल और एनओमिनेटर हैं।

परिणाम: ओ (एन ^ 2)

एपेल, बाहरी लूप के माध्यम से बाहरी लूप से शुरू हो रहा है नेस्टेड लूप जटिलता की गणना के लिए पर्याप्त तरीका है। यहां छवि विवरण दर्ज करें