धीरे-धीरे बोलना, समय की जटिलता यह बताने का एक तरीका है कि इनपुट का आकार बढ़ने पर एल्गोरिदम के संचालन या रन-टाइम की संख्या कैसे बढ़ती है।
जीवन में ज्यादातर चीजों की तरह, एक कॉकटेल पार्टी हमें समझने में मदद कर सकती है।
पर)
जब आप पार्टी में पहुंचते हैं, तो आपको हर किसी का हाथ हिलाना पड़ता है (हर आइटम पर एक ऑपरेशन करें)। जैसे-जैसे उपस्थित लोगों की संख्या N
बढ़ती जाती है, वैसे-वैसे सभी के हाथों को हिलाने में लगने वाला समय / कार्य बढ़ता जाएगाO(N)
।
क्यों O(N)
और क्या नहींcN
?
लोगों के साथ हाथ मिलाने में लगने वाले समय में भिन्नता है। आप इसे औसत कर सकते हैं और इसे स्थिर रूप से कैप्चर कर सकते हैं c
। लेकिन यहां मौलिक ऑपरेशन --- सभी के साथ हाथ मिलाना --- हमेशा आनुपातिक होगा O(N)
, चाहे जो भी होc
। यह बहस करते हुए कि क्या हमें कॉकटेल पार्टी में जाना चाहिए, हम अक्सर इस तथ्य में अधिक रुचि रखते हैं कि हमें उन बैठकों के मिनट विवरण की तुलना में हर किसी से मिलना होगा।
हे (एन ^ 2)
कॉकटेल पार्टी का मेजबान आपको एक मूर्खतापूर्ण खेल खेलना चाहता है जहां हर कोई हर किसी से मिलता है। इसलिए, आपको N-1
अन्य लोगों से मिलना चाहिए और, क्योंकि अगला व्यक्ति आपसे पहले ही मिल चुका है, उन्हें N-2
लोगों से मिलना चाहिए , और इसी तरह। इस श्रृंखला का योग है x^2/2+x/2
। जैसे ही उपस्थित लोगों की संख्या बढ़ती है, यह x^2
शब्द बड़ा तेज़ हो जाता है , इसलिए हम बस बाकी सब छोड़ देते हैं।
हे (एन ^ 3)
आपको हर किसी से मिलना है और, प्रत्येक बैठक के दौरान, आपको कमरे में बाकी सभी के बारे में बात करनी चाहिए।
हे (1)
मेजबान कुछ घोषणा करना चाहता है। वे एक शराब का गिलास मरते हैं और जोर से बोलते हैं। हर कोई उन्हें सुनता है। यह पता चलता है कि इसमें कितने उपस्थित हैं, इससे कोई फर्क नहीं पड़ता है, इस ऑपरेशन में हमेशा उतना ही समय लगता है।
O (लॉग एन)
होस्ट ने सभी को वर्णमाला क्रम में टेबल पर रखा है। डैन कहाँ है? आप कारण यह है कि वह एडम और मैंडी के बीच कहीं होना चाहिए (निश्चित रूप से मैंडी और जैच के बीच नहीं!)। यह देखते हुए, क्या वह जॉर्ज और मैंडी के बीच है? नहीं, वह एडम और फ्रेड के बीच और सिंडी और फ्रेड के बीच होना चाहिए। और इसी तरह ... हम आधे सेट और फिर उस सेट के आधे हिस्से को देखकर डैन को कुशलता से ढूँढ सकते हैं। अंततः, हम O (log_2 N) व्यक्तियों को देखते हैं।
ओ (एन लॉग एन)
आप पा सकते हैं कि ऊपर एल्गोरिथ्म का उपयोग करके टेबल पर कहां बैठना है। यदि बड़ी संख्या में लोग एक समय पर एक टेबल पर आए, और सभी ने ऐसा किया, तो ओ (एन लॉग एन) समय लगेगा। यह पता चलता है कि किसी भी आइटम को संग्रहित करने में कितना समय लगता है जब उनकी तुलना की जानी चाहिए।
सबसे अच्छा / सबसे खराब मामला
आप पार्टी में पहुंचते हैं और इनइगो को खोजने की जरूरत है - इसमें कितना समय लगेगा? यह आपके आने पर निर्भर करता है। यदि हर कोई आपके आस-पास मिल रहा है, तो आप सबसे खराब स्थिति में हैं: इसमें O(N)
समय लगेगा। हालाँकि, यदि हर कोई टेबल पर नीचे बैठा है, तो इसमें केवल O(log N)
समय लगेगा। या हो सकता है कि आप मेजबान के ग्लासग्लास-चिल्लाने की शक्ति का लाभ उठा सकते हैं और इसमें केवल O(1)
समय लगेगा।
मेज़बान की अनुपलब्धता को देखते हुए, हम कह सकते हैं कि इनिगो-खोजने वाले एल्गोरिदम में आपके पास आने पर पार्टी की स्थिति के आधार पर एक निचली-बाउंड O(log N)
और एक ऊपरी-बाउंड होता है O(N)
।
अंतरिक्ष और संचार
एल्गोरिदम अंतरिक्ष या संचार का उपयोग कैसे करते हैं, इसे समझने के लिए एक ही विचार लागू किया जा सकता है।
नूथ ने पूर्व शीर्षक "द कॉम्प्लेक्सिटी ऑफ़ सोंग्स" के बारे में एक अच्छा पेपर लिखा है ।
प्रमेय 2: वहाँ जटिलता ओ (1) के लंबे गाने मौजूद हैं।
PROOF: (केसी और सनशाइन बैंड के कारण)। Sk (15) द्वारा परिभाषित गानों पर विचार करें, लेकिन साथ
V_k = 'That's the way,' U 'I like it, ' U
U = 'uh huh,' 'uh huh'
सभी के लिए।