ट्रिपल-नेस्टेड लूप की समय जटिलता


13

कृपया निम्नलिखित ट्रिपल-नेस्टेड लूप पर विचार करें:

for (int i = 1; i <= n; ++i)
    for (int j = i; j <= n; ++j)
        for (int k = j; k <= n; ++k)
            // statement

यहाँ कथन को बिल्कुल n ( n + 1 ) ( n + 2 ) निष्पादित किया गया हैn(n+1)(n+2)6 बार। क्या कोई यह बता सकता है कि यह सूत्र कैसे प्राप्त हुआ? धन्यवाद।


1
प्रश्न नेस्टेड लूप्स का समय जटिलता सूत्र भी ब्याज का हो सकता है।
— जुहो

जवाबों:


14

आप यह जान सकते हैं कि लूप के लिए अंतर को कितनी बार गिना जाता है और इसके लिए ट्रिपलेट्स की संख्या की गणना की (i,j,k)जाती है।

1≤i≤j≤k≤n

  • n+2
  • n+2
  • (i,j,k)
    • i
    • j
    • k

n+2(n+23)


2
अच्छा उत्तर! I, j, k के सही मूल्य महत्वपूर्ण नहीं हैं। हमें बस यह जानने की जरूरत है कि किसी भी नीले बॉक्स को संभव स्थिति में रखा जा सकता है और उनके स्थान को बांधा गया है: 2 हमेशा 1 के बाद और 3 से पहले आता है।
— दाविद नैटिगा

@rizwanhudda में भाग को छोड़कर स्पष्ट । क्या आप इसे समझा सकते हैं? सही संख्या की तरह दिखता है। +2n+2n+3
— सादतमे २ sa

1
@ दसाडतामे होय। आप लाल बक्से होने की कल्पना कर सकते हैं , लेकिन " लाल बक्से" के बीच से नीले रंग की पेंटिंग के लिए 3 लाल बॉक्स चुनने की स्वतंत्रता है , क्योंकि आप पहले बॉक्स को नीले रंग में नहीं रंग सकते ( बाद से )n+3n+2i≥1
— rizwanhudda

3

मेरे लिए, आंतरिक लूप को नोटिस करना आसान है, टाइम को निष्पादित किया जाता है और इनर लूप में निष्पादन की कुल संख्या होती हैn−i

(n−i)+(n−i−1)+(n−i−2)+…+1

इसे रूप में फिर से लिखा जा सकता है और इसे बार निष्पादित किया जाता है , इसलिए निष्पादन की कुल संख्या है∑j=0n−in−i−jn

∑i=0n∑j=0n−in−i−j=n(n+1)(n+2)6

आपके लिए एक चुनौती: कल्पना कीजिए कि आपके पास एक एक्स-नेस्टेड लूप है। पिछले उत्तर के अनुसार यह निष्पादित करेगा (n + x-1) x समय चुनें। आप अपने सूत्र की गणना कैसे करेंगे?
— दाविद नतिग्गा

सौभाग्य से ओपी ने एक्स-नेस्टेड के लिए नहीं पूछा! एक्स-नेस्टेड लूप में दिए गए अन्य उत्तर का विस्तार कैसे होता है? मेरे उत्तर को केवल 0 से n, 0 से n-i_1, 0 से n-i_2, ..., 0 से n-i_x तक जाने के लिए और अधिक रकम मिलनी चाहिए। लेकिन मुझे नहीं पता कि कैसे गणना करनी चाहिए।
— एंडी mcevoy

1
उत्तर सामान्य एक्स के लिए स्पष्ट रूप से विस्तार नहीं करता है, लेकिन प्रस्तुत की जाने वाली प्रक्रिया एक्स-नेस्टेड छोरों का पालन करना आसान है। आप बस अधिक नीले बक्से जोड़ें। न ही मुझे पता है कि मैं उन अधिक रकम की गणना कैसे करूंगा।
— दाविद नैटिगा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.