मुझे बड़े ओ नोटेशन के बारे में कुछ संदर्भ मिले, लेकिन जहां तक मैं एल्गोरिदम जटिलता को समझ सकता हूं इनपुट डेटा के आकार का एक कार्य है।इनपुट के साथ एल्गोरिदम जटिलता फिक्स्ड साइज्ड
उदाहरण के लिए, यदि बबल प्रकार की जटिलता O(n^2)
है, n
इनपुट सरणी का आकार है। सही?
लेकिन, मैं एल्गोरिदम की जटिलता को कैसे निर्धारित कर सकता हूं जिसने इनपुट आकार तय किया है और इनपुट के मानों पर निर्भर करता है। उदाहरण के लिए, सबसे बड़ा आम भाजक (GCD) की खोज इस प्रकार दिखाई देगा:
def GCD(x, y):
while x != y:
if x < y:
x, y = y - x, x
else:
x, y = x - y, x
return x
इस एल्गोरिथ्म की जटिलता क्या है? और यह कैसे निर्धारित किया जाता है?
संपादित करें: फ़ंक्शन का परिवर्तित नाम और एल्गोरिदम का सही नाम। श्रीवत्सआर, इसे इंगित करने के लिए धन्यवाद।
कृपया इस विषय पर मौजूदा SO प्रश्न + उत्तर पढ़ें। –
आपका कोड, बीटीडब्लू, ** सबसे महान ** सामान्य विभाजक (जीसीडी) पाता है, जिसे उच्चतम सामान्य कारक (एचसीएफ) भी कहा जाता है। भिन्नताओं के एक सेट का "कम से कम आम संप्रदाय" कम से कम आम ** एकाधिक ** denominators है, जो कुछ और है। [दो पूर्णांक एक्स और वाई के लिए, हमारे पास एलसीएम (एक्स, वाई) = xy/gcd (x, y) है।] – ShreevatsaR
श्रीवत्सआर, धन्यवाद, मैंने इसे बदल दिया है। अंग्रेजी मेरी मूल भाषा नहीं है, इसलिए मुझे यकीन नहीं था कि इसे क्या कहा जाता है। –