। ए (मेरी राय में) अच्छा परिचय डॉन Knuths में पाया जा सकता Concrete Mathematics।
हालांकि, अब इन उदाहरणों का विश्लेषण करें:
हम एक फ़ंक्शन को परिभाषित करते हैं जो हमें फ़ंक्शन द्वारा आवश्यक समय देता है। मान लें कि t(n)
pow(x,n)
द्वारा आवश्यक समय को इंगित करता है, यानी n
का फ़ंक्शन।
फिर हम निष्कर्ष निकाल सकते हैं, कि t(0)=c
, अगर हम pow(x,0)
कहते हैं, हम चाहे (n==0
) की जाँच करने के लिए है क्योंकि, और उसके बाद 1, जो निरंतर समय (इसलिए निरंतर c
) में किया जा सकता है लौटने।
अब हम दूसरे मामले पर विचार करते हैं: n>0
। यहां हम t(n) = d + t(n-1)
प्राप्त करते हैं। ऐसा इसलिए है क्योंकि हमने n==1
की जांच करने के लिए फिर से की गणना की है, इसलिए (t(n-1)
), और परिणाम x
से गुणा करें।जांच और गुणा निरंतर समय (स्थिर d
) में किया जा सकता है, pow
की रिकर्सिव गणना t(n-1)
की आवश्यकता है।
अब हम "विस्तार" कर सकते हैं अवधि t(n)
:
t(n) =
d + t(n-1) =
d + (d + t(n-2)) =
d + d + t(n-2) =
d + d + d + t(n-3) =
... =
d + d + d + ... + t(1) =
d + d + d + ... + c
इसलिए, यह कब तक ले करता है जब तक हम t(1)
तक पहुँचने? चूंकि हम t(n)
पर शुरू करते हैं और हम प्रत्येक चरण में 1 घटाते हैं, t(n-(n-1)) = t(1)
तक पहुंचने के लिए n-1
चरण लेते हैं। यही कारण है, अन्य हाथों पर है, जिसका अर्थ है कि हम n-1
बार लगातार d
मिलता है, और t(1)
c
लिए मूल्यांकन किया जाता है।
तो हम प्राप्त:
t(n) =
...
d + d + d + ... + c =
(n-1) * d + c
तो हम कि t(n)=(n-1) * d + c
हे (एन) के तत्व है जो मिलता है।
pow2
Masters theorem का उपयोग किया जा सकता है। चूंकि हम मान सकते हैं कि एल्गोरिदम के लिए समय कार्य एकान्त रूप से बढ़ रहे हैं। तो अब हम समय t(n)
pow2(x,n)
की गणना के लिए की जरूरत है: n>0
के लिए
t(0) = c (since constant time needed for computation of pow(x,0))
हम
/t((n-1)/2) + d if n is odd (d is constant cost)
t(n) = <
\ t(n/2) + d if n is even (d is constant cost)
पाने के लिए "सरल" ऊपर जा सकता है:
t(n) = floor(t(n/2)) + d <= t(n/2) + d (since t is monotonically increasing)
तो हम t(n) <= t(n/2) + d
प्राप्त करें, जिसे मास्टर्स प्रमेय का उपयोग करके t(n) = O(log n)
पर हल किया जा सकता है (देखें अनुभाग में पॉपुल विकिपीडिया लिंक में एआर एल्गोरिदम, उदाहरण "बाइनरी सर्च")।
* दोनों कार्यों की जटिलता है? – kennytm
यह ओ (1) रिकर्सिव कॉल को अनदेखा कर रहा है लेकिन अलग-अलग व्यक्त किया जा सकता है। मुद्दा यह है कि कुल जटिलता पूरी तरह से रिकर्सन गहराई पर निर्भर करती है। – fgb