आइए पहले देखें। सबसे पहले, आपको टी (बेस केस) जानना होगा। आपने बताया कि यह स्थिर है, लेकिन जब आप समस्या करते हैं तो यह महत्वपूर्ण है कि आप इसे लिख दें। आम तौर पर यह टी (1) = 1 जैसा कुछ है। मैं इसका उपयोग करूंगा, लेकिन आप जो कुछ भी कर सकते हैं उसे सामान्यीकृत कर सकते हैं।
अगला, पता लगाएं कि आप कितनी बार पुनरावृत्ति करते हैं (यानी, रिकर्सन पेड़ की ऊंचाई)। n
आपकी समस्या का आकार है, तो हम कितनी बार बार-बार 2 से विभाजित कर सकते हैं? गणितीय रूप से बोलते हुए, मैं क्या हूं n/(2^i) = 1
? इसे चित्रित करें, बाद में इसके लिए पकड़ लें।
अगला, कुछ प्रतिस्थापन करें, जब तक कि आप एक पैटर्न को नोटिस करना शुरू न करें।
T(n) = 2(2(2T(n/2*2*2) + θ(1)) + θ(1)) + θ(1)
ठीक है, पैटर्न है कि हम समय की एक गुच्छा 2 से समय की एक गुच्छा, और विभाजित एन टी() गुणा 2 से है। कितनी बार? i
बार।
T(n) = (2^i)*T(n/(2^i)) + ...
अंत में बड़े θ संदर्भ के लिए, हम एक सुंदर चाल का उपयोग करें। ऊपर देखें जहां हमारे पास कुछ प्रतिस्थापन हैं, और टी() भाग को अनदेखा करते हैं। हम θ शर्तों की राशि चाहते हैं। ध्यान दें कि वे (1 + 2 + 4 + ... + 2^i) * θ(1)
तक जोड़ते हैं। क्या आप 1 + 2 + 4 + ... + 2^i
के लिए एक बंद फॉर्म खोज सकते हैं?मैं तुम्हें वह दूंगा; यह (2^i - 1)
है। बस याद रखने के लिए यह एक अच्छा है, लेकिन here's how you'd figure it out।
वैसे भी, सब में हम
T(n) = (2^i) * T(n/(2^i)) + (2^i - 1) * θ(1)
आप पहले i
के लिए हल तो मिलता है, तो आप उस i = log_2(n)
पता है। इसमें प्लग करें, कुछ बीजगणित करें, और आप
T(n) = n*T(1) + (n - 1)*θ(1)
पर जाएं। T(1) = 1
। तो T(n) = n + (n - 1)*θ(1)
। जो लगातार एक बार है, साथ ही निरंतर, प्लस एन। हम निचले क्रम के नियम और स्थिरांक ड्रॉप करते हैं, इसलिए यह θ (n) है।
प्रसून सौरव मास्टर विधि का उपयोग करने के बारे में सही है, लेकिन यह महत्वपूर्ण है कि आप जानते हैं कि पुनरावृत्ति संबंध क्या कह रहा है। पूछने की चीजें हैं, मैं प्रत्येक चरण में कितना काम करता हूं, और n
आकार के इनपुट के लिए चरणों की संख्या क्या है?
मैं इस प्रश्न को ऑफ-विषय के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह एक गणित प्रश्न है, प्रोग्रामिंग प्रश्न नहीं। – ProgramFOX