क्या बिग-ओह टाइम जटिलता में एक से अधिक चर हो सकते हैं?


11

उदाहरण के लिए हम कहते हैं कि मैं स्ट्रिंग प्रसंस्करण कर रहा हूं जिसमें दो तारों के कुछ विश्लेषण की आवश्यकता है। मुझे इस बारे में कोई जानकारी नहीं है कि उनकी लंबाई क्या हो सकती है, इसलिए वे दो अलग-अलग परिवारों से आते हैं। यह एक एल्गोरिथ्म की जटिलता कॉल करने के लिए स्वीकार्य होगा या हे ( n + मीटर ) (अगर हम एक अनुभवहीन या एक अनुकूलित एल्गोरिथ्म का उपयोग पर निर्भर करता है)?O(nm)O(n+m)

एक समान नस पर, आइए हम उस एल्गोरिथ्म को मान लें जिसे हम चुनते हैं कि वास्तव में दो चरणों की आवश्यकता है - पहले स्ट्रिंग पर एक सेटअप चरण जो हमें प्रारंभिक लागत के बिना किसी भी संख्या में अन्य तारों को संसाधित करने की अनुमति देता है। क्या यह कहना उचित होगा कि इसमें निर्माण है जिसके बाद O ( m ) गणना की कोई संख्या होगी ?O(n)O(m)

क्या उन्हें केवल कहना उचित होगा क्योंकि दोनों गणना रैखिक हैं?O(n)


थोड़ी सी पृष्ठभूमि के लिए इस उत्तर पर टिप्पणियों को देखें - इतने सम्मानजनक प्रश्न पूछने के लिए बहादुरी से @corsiKa के लिए मेरा सम्मान।
OldCurmudgeon

@OldCurmudgeon, मैं देखता हूं। मुझे लगता है कि टिप्पणी धागा में उतारा नफरत होगी। Oldcurmudgeon, क्या आप big-O नोटेशन को समझे बिना बिग-ओ नोटेशन पर बहस कर रहे हैं? वास्तव में अजीब। इसके अलावा, आप और corsiKa पैरामीटर और m को परिभाषित किए बिना चलने के समय पर बहस कर रहे हैं - गलत संचार के लिए एक नुस्खा। संकेत: स्ट्रिंग्स के साथ काम करते समय एक आम सम्मेलन एक स्ट्रिंग की लंबाई का उपयोग करने के लिए मी का उपयोग करने के लिए सहमत होता है और दूसरी स्ट्रिंग की लंबाई के लिए n - लेकिन आदर्श रूप से यह स्पष्ट करने के लिए शायद सबसे अच्छा है, क्योंकि अन्यथा यह भ्रम पैदा कर सकता है (जैसा कि) यहाँ सचित्र)। nmmn
DW

@DW यह संभव है कि OldCurmudgeon ने स्कूल में बस एक अलग परिभाषा सीखी ... जैसा कि मैं नीचे एक टिप्पणी में इंगित करता हूं, कई चर चरना संभव है, हालांकि मैंने अब तक इसे करने के बारे में वास्तव में कभी नहीं सोचा है। शायद यह - या ऐसा कुछ - मानक हुआ करता था?
पैट्रिक87

2
मुझे लगता है कि यहां और यहां पर्याप्त उत्तर हैं
राफेल

जवाबों:


14

हां बिल्कुल। यह ठीक है और पूरी तरह से स्वीकार्य है। यह एल्गोरिदम देखने के लिए सामान्य और मानक है जिसका चलने का समय दो मापदंडों पर निर्भर करता है।

उदाहरण के लिए, आपको अक्सर रूप में व्यक्त की गई गहराई-पहली खोज का समय दिखाई देगा , जहाँ n वर्टिस की संख्या है और m ग्राफ़ में किनारों की संख्या है। यह पूरी तरह से वैध है। इस का अर्थ वहां मौजूद एक निरंतर है और संख्या n 0 , मी 0 ऐसी है कि एल्गोरिथ्म का चलने का समय है अधिक से अधिक ( n + मीटर ) , सभी के लिए n > एन 0 , मीटर > मीटर 0O(n+m)nmcn0,m0c(n+m)n>n0,m>m0। दूसरे शब्दों में, अगर सही चल रहा है समय आ गया है , हम कहते हैं कि ( n , m ) = हे ( n + मीटर ) वहां मौजूद है, तो सी , एन 0 , मी 0 ऐसी है कि n > एन 0 और मीटर > मीटर 0 तात्पर्य ( n , m ) सी ( n + मीटर )f(n,m)f(n,m)=O(n+m)c,n0,m0n>n0m>m0f(n,m)c(n+m)

O(n)O(m)

nmO(n)nnn=m=

O(n)m=O(n)m=O(n)m+n=O(n)O(m+n)O(n)m=O(n)O(n)

यह बुनियादी सामान है। आपको यह सभी एल्गोरिदम पाठ्यपुस्तकों में मिलेगा।


1
@OldCurmudgeon, ऑड्स हैं कि आपको कई मानक एल्गोरिदम पाठ्यपुस्तकों में इसके उदाहरण मिल जाएंगे। आपने किन लोगों को देखा है? क्या आपने गहराई से पहली खोज के अध्याय को देखने की कोशिश की है (उदाहरण जो मैंने अपने उत्तर में उल्लेख किया है)?
डीडब्ल्यू

2
OO(V+E)(V,E)

2
n

1
मैं इस बात से सहमत हूं कि हर कोई लन्दौ संकेतन का उपयोग इस तरह से करता है, लेकिन लगभग कोई नहीं जानता कि इसका वास्तव में क्या मतलब है (जब तक कि आप मापदंडों को कार्यात्मक रूप से नहीं जोड़ते हैं)। ए। शुल्ज़ के उत्तर से जुड़े लेख को भी यहाँ देखें, जो यह कहते हुए शुरू होता है कि "मूल" और "आम" का उपयोग गलत है।
राफेल

1
@ पैट्रिक87 कॉम्प्लेक्सिटी सिद्धांत कई प्रसिद्ध वर्गों की परिभाषा के आधार पर, ज्यादातर इनपुट लंबाई (उल्लेखनीय अपवादों के साथ) का उपयोग करता है। एल्गोरिथम विश्लेषण है - जब गंभीरता से किया जाता है - वास्तविक संसाधन उपयोग के बारे में कुछ सीखने में रुचि (जहां तक ​​मॉडल अनुमति देता है) तो अन्य पैरामीटर पूरे चित्र (अधिक सटीक) को चित्रित करने के लिए और अधिक दिलचस्प हो जाते हैं।
राफेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.