ऐसा समय हो सकता है जब आप इस तरह की एक अजीब पुनरावृत्ति पर आते हैं:
यदि आप मेरे जैसे हैं, तो आपको एहसास होगा कि आप मास्टर प्रमेय का उपयोग नहीं कर सकते हैं और फिर आप सोच सकते हैं, " हम्म् ... शायद एक पुनरावृत्ति पेड़ विश्लेषण काम कर सकता है। " तब आपको एहसास होगा कि पेड़ को वास्तव में तेजी से सकल मिलना शुरू हो जाता है। इंटरनेट पर कुछ सर्च करने के बाद आप देखें कि अक्र्रा-बाज़ी विधि काम करेगी! तब आप वास्तव में इसे देखना शुरू करते हैं और महसूस करते हैं कि आप वास्तव में सभी गणित नहीं करना चाहते हैं। यदि आप इस बिंदु तक मेरे जैसे हैं, तो आप यह जानने के लिए उत्साहित होंगे कि वहाँ एक आसान तरीका है।T(n)={c2T(n5)+4T(n7)+cnn<7n≥7
असमान स्प्लिट प्रमेय भाग 1
चलो और सकारात्मक स्थिरांक हैं।ck
तो फिर सकारात्मक स्थिरांक जैसे कि ।{a1,a2,…,ak}∑k1ai<1
हमारे पास फॉर्म की पुनरावृत्ति भी होनी चाहिए (जैसे हमारे ऊपर का उदाहरण):
T(n)T(n)≤c≤cn+T(a1n)+T(a2n)+…T(akn)0<n<max{a−11,a−12,…,a−1k}n≥max{a−11,a−12,…,a−1k}
दावा
तब मैं दावा करता हूं कि जहां एक स्थिरांक है (उदाहरण के तौर पर रैखिक) और:T(n)≤bnb
b=c1−(∑k1ai)
इंडक्शन द्वारा प्रमाण
आधार :n<max{a−11,a−12,…,a−1k}⟹T(n)≤c<b<bn
इंडक्शन : किसी भी लिए सही मानें , तो हमारे पास हैn′<n
T(n)≤cn+T(⌊a1n⌋)+T(⌊a2n⌋)+⋯+T(⌊akn⌋)≤cn+b⌊a1n⌋+b⌊a2n⌋+⋯+b⌊akn⌋≤cn+ba1n+ba2n+⋯+bakn=cn+bn∑1kai=cn−cn∑k1ai1−(∑k1ai)+cn∑k1ai1−(∑k1ai)=cn1−(∑k1ai)=bn□
तब हमारे पास ।T(n)≤bn⟹T(n)=O(n)
उदाहरण
T(n)={c2T(n5)+4T(n7)+cnn<7n≥7
हम पहले पुनरावर्ती कॉल योग के अंदर गुणांक को एक से कम करने के लिए सत्यापित करते हैं:
1>∑1kai=15+15+17+17+17+17=25+47=3435
हम अगला पुष्टि करते हैं कि आधार मामला गुणांकों के व्युत्क्रम के अधिकतम से कम है:
n<max{a−11,a−12,…,a−1k}=max{5,5,7,7,7,7}=7
इन शर्तों को पूरा करने के साथ, हम जानते हैं कि जहाँ एक बराबर है:
इसलिए हमारे पास:
T(n)≤bnbb=c1−(∑k1ai)=c1−3435=35c
T(n)∧T(n)∴T(n)≤35cn≥cn=Θ(n)
असमान स्प्लिट प्रमेय भाग 2
इसी तरह जब हम लिए बाध्य होते हैं, तो हम उन्हें प्रमाणित कर सकते हैं । प्रमाण एक ही प्रारूप का बहुत पालन करेगा:∑k1=1
आज्ञा देना और सकारात्मक स्थिरांक हैं जैसे कि ।ckk>1
फिर को सकारात्मक स्थिरांक जैसे कि ।{a1,a2,…,ak}∑k1ai=1
हमारे पास फॉर्म की पुनरावृत्ति भी होनी चाहिए (जैसे हमारे ऊपर का उदाहरण):
T(n)T(n)≤c≤cn+T(a1n)+T(a2n)+…T(akn)0<n<max{a−11,a−12,…,a−1k}n≥max{a−11,a−12,…,a−1k}
दावा
तब मैं दावा करता हूं कि (हम बेस चुनते हैं क्योंकि रिकर्सन ट्री का ब्रांचिंग फैक्टर होगा) जहां और स्थिरांक होते हैं (उदाहरण के लिए asptptotically linearithmic) ) ऐसा है कि:T(n)≤αnlogkn+βnlogkkαβ
β=c
और
α=c∑k1ailogka−1i
इंडक्शन द्वारा प्रमाण
आधार :n<max{a−11,a−12,…,a−1k}⟹T(n)≤c=β<αnlogkn+βn
इंडक्शन : किसी भी लिए सही मानें , तो हमारे पास हैn′<n
T(n)≤cn+T(⌊a1n⌋)+T(⌊a2n⌋)+⋯+T(⌊akn⌋)≤cn+∑1k(αainlogkain+βain)=cn+αn∑1k(ailogkain)+βn∑1kai=cn+αn∑1k(ailogkna−1i)+βn=cn+αn∑1k(ai(logkn−logka−1i))+βn=cn+αn∑1kailogkn−αn∑1kailogka−1i+βn=αn∑1kailogkn+βn=αnlogkn+βn□
तो फिर हमारे पास ।T(n)≤αnlogkn+βn⟹T(n)=O(nlogn)
उदाहरण
चलिए उस पिछले उदाहरण को संशोधित करते हैं जिसे हमने केवल एक छोटा सा प्रयोग किया है:
T(n)={c2T(n5)+4T(n7)+T(n35)+cnn<35n≥35
हम पहले एक के लिए पुनरावर्ती कॉल के अंदर गुणांक को सत्यापित करते हैं:
1=∑1kai=15+15+17+17+17+17+135=25+47+135=3535
हम अगला पुष्टि करते हैं कि आधार मामला गुणांकों के व्युत्क्रम के अधिकतम से कम है:
n<max{a−11,a−12,…,a−1k}=max{5,5,7,7,7,7,35}=35
इन शर्तों को पूरा करने के साथ, हम जानते हैं कि जहां और एक स्थिर बराबर है:
इसलिए हमारे पास:
T(n)≤αnlogn+βnβ=cαb=c∑k1ailogka−1i=c2log755+4log777+log73535≈1.048c
T(n)∴T(n)≤1.048cnlog7n+cn=O(nlogn)