चयन एल्गोरिथ्म के लिए अंतरिक्ष पर बाध्य?


11

पूर्णांक के एक सरणी में k 'वें सबसे बड़े तत्व को खोजने के लिए एक प्रसिद्ध सबसे खराब स्थिति चयन एल्गोरिदम है । यह एक अच्छा पर्याप्त धुरी खोजने के लिए एक मध्य-मध्ययुगीन दृष्टिकोण का उपयोग करता है , इनपुट सरणी को जगह में विभाजित करता है और फिर k 'वें सबसे बड़े तत्व के लिए खोज करता है।O(n) kk

क्या होगा यदि हमें इनपुट सरणी को छूने की अनुमति नहीं थी, तो ( n ) समय में 'वें सबसे बड़े तत्व को खोजने के लिए कितने अतिरिक्त स्थान की आवश्यकता होगी ? क्या हम O ( 1 ) अतिरिक्त स्थान में k का सबसे बड़ा तत्व खोज सकते हैं और फिर भी रनटाइम O ( n ) रख सकते हैं ? उदाहरण के लिए, अधिकतम या न्यूनतम तत्व खोजने में O ( n ) समय और O ( 1 ) स्थान लगता है। kO(n)kO(1)O(n)O(n)O(1)

वास्तव में, मैं कल्पना नहीं कर सकता कि हम स्थान से बेहतर कर सकते हैं लेकिन क्या इसका कोई प्रमाण है?O(n)

एक संदर्भ के लिए किसी को इंगित कर सकते हैं या एक बहस क्यों के साथ आने 'वें तत्व की आवश्यकता होगी हे ( एन ) अंतरिक्ष में पाया जा सकता हे ( एन ) समय?n/2O(n)O(n)


जवाबों:


13

यह एक खुली समस्या है अगर आप इनपुट को बदले बिना समय और O ( 1 ) अतिरिक्त मेमोरी सेल्स के साथ चयन कर सकते हैं ( यहाँ देखें )। लेकिन आप इसके काफी करीब आ सकते हैं।O(n)O(1)

O(n1+ε)O(1/ε)ε>0

O(n)pp

pA(k)ε=1/kA(k)A(k1)A(1)कलन विधि। सही ब्लॉक आकार (और गणित कर रहा है) आपको ऊपर बताए गए समय और स्थान की आवश्यकताओं को पूरा करता है।

Btw, आप जिस एल्गोरिदम की तलाश कर रहे हैं, उसे हाल ही में निरंतर-कार्य-स्थान एल्गोरिदम का नाम दिया गया था ।

मैं किसी निचली सीमा से वाकिफ नहीं हूं।

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