Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

विभाजन और विजय (Divide and Conquer) पुनरावृत्तियों के लिए उन्नत मास्टर प्रमेय

विभाजन और विजय एक एल्गोरिदम है जो समस्या को समान प्रकार के कई उप-समस्याओं में पुनरावर्ती रूप से विभाजित करने के प्रतिमान पर काम करता है जिन्हें आसानी से हल किया जा सकता है।

उदाहरण

function recursive(input x size n)
  if(n < k)
    इनपुट को आकार n/p की m उप-समस्याओं में विभाजित करें
    और प्रत्येक उप-समस्या के लिए f को पुनरावर्ती रूप से कॉल करें
  else
    x को हल करें और लौटाएं
सभी उप-समस्याओं के परिणामों को मिलाएं और मूल समस्या का समाधान लौटाएं

मास्टर प्रमेय पुनरावर्ती संबंध एल्गोरिदम के लिए बड़ा-O मान निर्धारित करने के लिए एक विश्लेषण प्रमेय है। यह एल्गोरिदम द्वारा आवश्यक समय को स्पर्शोन्मुख संकेतन में दर्शाता है।

रनटाइम मान: T(n) = f(n) + m·T(n/p)

कुछ मामलों में मास्टर प्रमेय लागू नहीं होता (जैसे T(n) मोनोटोन नहीं है, या f(n) बहुपद नहीं है)। ऐसे मामलों के लिए उन्नत मास्टर प्रमेय डिज़ाइन किया गया है जो निम्न रूप की पुनरावृत्ति को संभालता है:

T(n) = a·T(n/b) + Θ(nᵏ logᵖ n)

जहां n समस्या का आकार है, a > 0 उप-समस्याओं की संख्या है, b > 1, k ≥ 0, और p एक वास्तविक संख्या है।

हल

  • यदि a > bᵏ, तो T(n) = Θ(n^{log_b a})
  • यदि a = bᵏ, तो
    • यदि p > -1, तो T(n) = Θ(n^{log_b a} log^{p+1} n)
    • यदि p = -1, तो T(n) = Θ(n^{log_b a} log log n)
    • यदि p < -1, तो T(n) = Θ(n^{log_b a})
  • यदि a < bᵏ, तो
    • यदि p ≥ 0, तो T(n) = Θ(nᵏ logᵖ n)
    • यदि p < 0, तो T(n) = Θ(nᵏ)

उदाहरण

  • बाइनरी सर्च: T(n) = Θ(log n)
  • मर्ज सॉर्ट: T(n) = Θ(n log n)
  1. Mac के लिए Spotlight में महारत हासिल करें और प्रोडक्टिविटी गुरु बनें Mac के लिए Spotlight में महारत हासिल करें और प्रोडक्टिविटी गुरु बनें

    Spotlight कई प्रमुख macOS रिलीज़ में शामिल रहा है, लेकिन इसे अधिकांश यूज़र्स द्वारा आसानी से अपनाया नहीं गया है। ऐसा इसलिए नहीं है क्योंकि Spotlight में स्वयं कोई समस्या है: यह एक तेज़ और लचीला टास्क लॉन्चर है जो हमेशा उपलब्ध प्रॉम्प्ट के भीतर अन्य बुनियादी कार्यों को पूरा करने में सक्षम है। हालांक

  1. शुरुआती और पेशेवरों के लिए शीर्ष 7 3D CAD सॉफ्टवेयर विकल्प शुरुआती और पेशेवरों के लिए शीर्ष 7 3D CAD सॉफ्टवेयर विकल्प

    जब CAD सॉफ्टवेयर चुनने की बात आती है, तो दिमाग में सबसे पहले एक ही नाम आता है और वह है AutoCAD। यदि आप एक पेशेवर इंजीनियर या आर्किटेक्ट हैं तो किसी भी 3D CAD सॉफ्टवेयर में महारत हासिल करना वास्तव में महत्वपूर्ण है जो आपके रचनात्मक कौशल को निखारेगा। 3D प्रिंटिंग की बात आने पर डिजाइनिंग के महत्व को नज

  1. Windows PC में मास्टर बनें: सभी यूजर्स के लिए 50+ एक्सपर्ट टिप्स, ट्रिक्स और ट्यूटोरियल्स Windows PC में मास्टर बनें: सभी यूजर्स के लिए 50+ एक्सपर्ट टिप्स, ट्रिक्स और ट्यूटोरियल्स

    Windows एक विशाल ऑपरेटिंग सिस्टम है जिसमें कई फीचर्स और फंक्शनैलिटीज हैं जिन पर आपने कभी ध्यान नहीं दिया होगा। यह सुनिश्चित करने के लिए कि आप अपने Windows PC का अधिकतम लाभ उठा सकें, हमने एक्सपर्ट टिप्स, ट्रिक्स, कैसे-करें, वीडियो ट्यूटोरियल्स, बेस्ट सॉफ्टवेयर/प्रोग्राम्स आदि की एक सूची तैयार की है।