उलटा जोड़े की गिनती


14

फूट डालो और जीतो का एक क्लासिक अनुप्रयोग निम्नलिखित समस्या को हल करना है:

एक सरणी को देखते हुए अलग, तुलनीय तत्वों की, सरणी में उलट जोड़े की संख्या की गिनती: जोड़े ( मैं , जे ) ऐसी है कि एक [ मैं ] > एक [ जे ] और मैं < ja[1n](i,j)a[i]>a[j]i<j

इसके लिए एक दृष्टिकोण मर्ज सॉर्ट करना है, लेकिन उप-समस्याओं में उलटा जोड़े की संख्या की गिनती भी है। मर्ज के चरण के दौरान, हम उलटा युग्मों की संख्या की गणना करते हैं जो (दो) उप-समस्याओं में होती हैं और उप-समस्याओं की गिनती में जोड़ते हैं।

हालांकि यह अच्छा है, और एक टाइम एल्गोरिथ्म देता है, यह सरणी को गड़बड़ करता है।O(nlogn)

यदि हमारे पास अतिरिक्त बाधा है कि सरणी केवल-पढ़ने के लिए है, तो हम प्रतिलिपि बना सकते हैं और कॉपी के साथ सौदा कर सकते हैं, या एक अतिरिक्त डेटा-संरचना का उपयोग कर सकते हैं जैसे गिनती करने के लिए एक आदेश आँकड़ों के संतुलित बाइनरी ट्री का उपयोग करते हैं, दोनों का उपयोग स्थान।Θ(n)

वर्तमान प्रश्न दौड़ के समय को प्रभावित न करते हुए, स्थान को बेहतर बनाने का प्रयास करना है। अर्थात

क्या उलटा जोड़े की संख्या की गणना करने के लिए एक समय एल्गोरिथ्म है, जो एक रीड-ओनली सरणी पर काम करता है और उप-लीनियर (यानी ( एन ) ) स्पेस का उपयोग करता है?O(nlogn)o(n)

मान लें कि एक समान लागत वाला रैम मॉडल और तत्व स्थान लेते हैं और उनके बीच तुलना ( 1 ) हैO(1)O(1)

एक संदर्भ होगा, लेकिन एक स्पष्टीकरण बेहतर होगा :-)

मैंने वेब खोजने की कोशिश की, लेकिन इसके लिए कोई सकारात्मक / नकारात्मक उत्तर नहीं मिला। मुझे लगता है कि यह सिर्फ एक जिज्ञासा है।


3
Chan और Pătraşcu एक टाइम अल्गोरिथम देते हैं, लेकिन जहां तक ​​मैं पेपर को स्किमिंग करने से बता सकता हूं, उन्हें Ω ( n ) स्पेस की जरूरत होती है। o(nlogn)Ω(n)
राफेल

2
इसके अलावा, अज़ताई एट अल। यह साबित करें कि किसी भी (सटीक) टाइम स्ट्रीमिंग एल्गोरिदम को Ω ( n ) स्पेस की जरूरत है। वहाँ अपने मानदंड फिटिंग सन्निकटन प्रतीत होते हैं, हालांकि। O(n)Ω(n)
राफेल

1
@ राफेल: धन्यवाद! यदि कोई उत्तर आगामी नहीं है, तो आपकी टिप्पणी अब तक का सबसे अच्छा उत्तर होगी।
आर्यभट्ट

BTW मैं उस Ajtai एट अल निचले बाउंड के बारे में थोड़ा उलझन में हूं। प्रमेय 8 "कोई भी एल्गोरिथ्म" कहता है, लेकिन मेरे लिए निचली सीमा एकल पास सटीक स्ट्रीमिंग एल्गोरिदम के खिलाफ लगती है, एक बहुत ही प्रतिबंधित मॉडल
साशो निकोलेव

@ सशाओनिकोलोव: मुझे लगता है कि उन्होंने विश्व स्तर पर अपने मॉडल को स्ट्रीमिंग एल्गोरिदम में सेट किया है, इसलिए "कोई भी" उन तक ही सीमित रहेगा। मुझे उम्मीद है कि मेरी कोरोलरी - किसी भी सटीक समय एल्गोरिथ्म - सही है, यह है कि किसी भी रैखिक-समय के एल्गोरिथ्म को लगातार कई पास के साथ स्ट्रीमिंग एल्गोरिथ्म के रूप में व्यक्त किया जा सकता है। हम देखेंगेO(n)
राफेल

जवाबों:


3

यहाँ राफेल का जवाब है:

Chan और Pătraşcu एक टाइम अल्गोरिथम देते हैं, लेकिन जहां तक ​​मैं पेपर को स्किमिंग करने से बता सकता हूं, उन्हें Ω ( n ) स्पेस की जरूरत होती है। इसके अलावा, अज़ताई एट अल। यह साबित करें कि किसी भी (सटीक) O ( n ) टाइम स्ट्रीमिंग एल्गोरिदम को Ω ( n ) स्पेस की जरूरत है। वहाँ अपने मानदंड फिटिंग सन्निकटन प्रतीत होते हैं, हालांकि।o(nlogn)Ω(n)O(n)Ω(n)


इसे उत्तर देने के लिए धन्यवाद। मैं हालांकि इसे कुछ और समय दूंगा। लगता है ट्रैफिक उठा रहा है।
आर्यभट्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.