यह कहने का एक और तरीका है।
मान लीजिए कि आपका एल्गोरिदम समस्या के आकार में अंकों की संख्या में रैखिक है। तो, शायद आपके पास एक बड़ी संख्या के कारक के लिए एक नया एल्गोरिदम है, जो आप अंकों की संख्या में रैखिक होने के लिए दिखा सकते हैं। आपके एल्गोरिदम का उपयोग करके 10 अंकों की संख्या के रूप में एक 20 अंकों की संख्या कारक के लिए दो गुना अधिक समय लेती है। इसमें लॉग जटिलता होगी। (और यह आविष्कारक के लिए कुछ लायक होगा।)
बिसेक्शन का एक ही व्यवहार है। इसमें 1024 = 2^10 के कारक द्वारा अंतराल की लंबाई को कम करने के लिए लगभग 10 बिसेक्शन कदम होते हैं, लेकिन केवल 20 कदम 2^20 के कारक द्वारा अंतराल को काट देंगे।
लॉग जटिलता हमेशा यह नहीं मानती है कि सभी समस्याओं पर एल्गोरिदम तेजी से होता है। ओ (लॉग (एन)) के सामने रैखिक कारक बड़ा हो सकता है। तो आपकी एल्गोरिदम छोटी समस्याओं पर भयानक हो सकती है, जब तक समस्या का आकार काफी बड़ा नहीं होता है तब तक उपयोगी नहीं होता है कि अन्य एल्गोरिदम एक घातीय (या बहुपद) मौत मर जाते हैं।
स्रोत
2009-04-15 12:20:10
+1 बहुत दिलचस्प है। मैं आपके उदाहरणों की तरह कुछ ढूंढ रहा हूं। क्या एल्गोरिदम logartihmic है: के लिए (int i = BIG_number; i> N; i * = 1/2) {...} –
1/2 पूर्णांक विभाजन में शून्य है, लेकिन यदि आप इसके बजाय "i/= 2" का उपयोग करते हैं , हाँ यही है। (यदि वह विशेष एल्गोरिदम है जिसके बारे में आप सोच रहे हैं, तो यह आपके प्रश्न में शामिल करना एक अच्छा विचार हो सकता है।) –