आपका आर्कटिक एक डिवाइड-एंड-कॉनकॉर एल्गोरिथ्म है, जो रैखिक समय में काम को विभाजित करता है (और पुनर्संयोजित करता है) और टुकड़ों पर पुनरावृत्ति करता है। मर्ज तरह कि जिस तरह से काम करता है: खर्च हे ( एन ) समय बंटवारे दो लगभग बराबर टुकड़ों में इनपुट, रिकर्सिवली तरह प्रत्येक टुकड़ा है, और खर्च Θ ( n ) के संयोजन दो सॉर्ट किया आधा समय।Θ(nlogn)O(n)Θ(n)
सहज रूप से, विभाजित और जीत के विचार को जारी रखते हुए, प्रत्येक डिवीजन चरण में कुल समय रैखिक समय लेता है, क्योंकि टुकड़ों को विभाजित करने के लिए टुकड़ों की संख्या में वृद्धि वास्तव में टुकड़ों के आकार में कमी से मेल खाती है, क्योंकि विभाजन द्वारा लिया गया समय रैखिक है। कुल चलने का समय एक डिवीजन चरण की कुल लागत का उत्पाद है जिसे डिवीजन चरणों की संख्या से गुणा किया जाता है। के बाद से टुकड़े के आकार प्रत्येक समय में आधा कर दिया जाता है, देखते हैं , विभाजन चरणों तो कुल समय चल रहा है n ⋅ लॉग ( एन ) । (एक गुणक स्थिरांक तक, लघुगणक का आधार अप्रासंगिक है।)log2(n)n⋅log(n)
समीकरणों में यह लाना (), एक तरह से चल रहा है समय का अनुमान लगाने के : इस तरह के एक एल्गोरिथ्म के यह रिकर्सिवली व्यक्त करने के लिए है टी ( एन ) = 2 टी ( एन / 2 ) + Θ ( n ) । यह स्पष्ट है कि यह एल्गोरिथ्म रैखिक समय से अधिक लेता है, और हम देख सकते हैं कि n :
T ( n ) द्वारा विभाजित करके कितना अधिक हैT(n)T(n)=2T(n/2)+Θ(n)n
जबnयुगल,टी(एन)/nएक निरंतर राशि से बढ़ जाती है:टी(एन)/nबढ़ जाती है लघुगणकीय, या दूसरे शब्दों में,टी(एन)=Θ(nलॉग इन करेंn)।
T(n)n=T(n/2)n/2+Θ(1)
nT(n)/nT(n)/nT(n)=Θ(nlogn)
यह एक अधिक सामान्य पैटर्न का एक उदाहरण है: मास्टर प्रमेय । किसी भी पुनरावर्ती एल्गोरिदम के लिए है कि विभाजित आकार के अपने इनपुट में एक आकार के टुकड़े n / ख और एक समय लगता है च ( एन ) के विभाजन और पुनर्संयोजन, चलने का समय संतुष्ट प्रदर्शन करने के लिए टी ( एन ) = एक ⋅ टी ( एन / बी ) + च ( n ) । यह एक बंद रूप की ओर जाता है जो a और b और के आकार के मूल्यों पर निर्भर करता हैnan/bf(n)T(n)=a⋅T(n/b)+f(n)ab । यदि एक = ख और च ( एन ) = Θ ( n ) , मास्टर प्रमेय कहा गया है कि टी ( एन ) = Θ ( n लॉग इन करें n ) ।fa=bf(n)=Θ(n)T(n)=Θ(nlogn)