नाजुक वस्तुओं की सूची बनाना


19

पृष्ठभूमि: चाओ जू ने कुछ समय पहले निम्नलिखित प्रश्न पोस्ट किए थे: " क्या कोई ज्ञात तुलना सॉर्टिंग एल्गोरिदम हैं जो सॉर्टिंग नेटवर्क को कम नहीं करते हैं, जैसे कि प्रत्येक तत्व की तुलना बार की जाती है?O(logn) "। ऐसा लगता है कि हम समस्या से थोड़े चिपके हुए हैं; मैंने 2009 में वैलेंटाइन पोलिशचुक के साथ इसी समस्या पर चर्चा की है, और हम कहीं नहीं मिले।

कुछ नए विचार प्राप्त करने के लिए, मैंने सबसे सरल संभव सवाल के साथ आने की कोशिश की, जिसमें समान स्वाद है और पूरी तरह से तुच्छ नहीं है। इसलिए निम्नलिखित प्रश्न


प्रश्न: आपको दो छांटे गए सूची दिए गए हैं, जिनमें से प्रत्येक तत्वों के साथ है। क्या आप सूचियों को मर्ज कर सकते हैं ताकि प्रत्येक तत्व केवल O ( 1 ) बार की तुलना में हो ?nO(1)

स्वाभाविक रूप से, आउटपुट एक सॉर्ट की गई सूची होनी चाहिए जिसमें सभी तत्व शामिल हैं।2n

[यह तुच्छ निकला, जवाब "नहीं" है।]


प्रश्न 2: आपको दो छांटे गए सूची दिए गए हैं, उनमें से प्रत्येक में तत्व हैं। क्या आप सूचियों को मर्ज कर सकते हैं ताकि प्रत्येक तत्व की तुलना केवल O ( 1 ) समय से की जाए, यदि आपको तत्वों के एक छोटे से अंश को त्यागने की अनुमति है ?nO(1)

अधिक सटीक रूप से, आउटपुट एक क्रमबद्ध सूची होनी चाहिए जिसमें तत्व होते हैं, और एक "trashcan" जिसमें T ( n ) तत्व होते हैं। T ( n ) मान को आप कितना छोटा कर सकते हैं ? हो रही टी ( एन ) = n तुच्छ है। T ( n ) = n / 100 जैसी कोई चीज सीधे तरीके से करनी चाहिए। लेकिन क्या आप टी ( एन ) = ( एन ) प्राप्त कर सकते हैं2nT(n)T(n)T(n)T(n)=nT(n)=n/100 ?T(n)=o(n)


टिप्पणियाँ:

  • हम यहां तुलना मॉडल का उपयोग करते हैं। नियतात्मक एल्गोरिदम केवल, हम सबसे खराब मामलों की गारंटी में रुचि रखते हैं।

  • ध्यान दें कि दोनों सूचियों में बिल्कुल तत्व हैं। यदि हमारे पास n तत्वों के साथ एक सूची और दूसरे में 1 तत्व है, तो इसका उत्तर स्पष्ट रूप से "नहीं" है; हालाँकि, यदि दोनों सूचियाँ लंबी हैं, तो ऐसा लगता है कि कोई "लोड बैलेंसिंग" करने में सक्षम हो सकता है।nn1

  • इस बार किसी भी प्रकार का एल्गोरिथ्म मान्य है। यदि आपका एल्गोरिथ्म बिल्डिंग ब्लॉक के रूप में छँटाई नेटवर्क का उपयोग करता है, तो यह पूरी तरह से ठीक है।

  • T(n)=n/100


8
आपने कहा कि "यदि हमारे पास n तत्वों के साथ एक सूची और दूसरे में 1 तत्व है, तो इसका उत्तर स्पष्ट रूप से नहीं है।" क्या प्रत्येक सूची में n तत्वों के साथ मामला अधिक सामान्य समस्या नहीं है? उदाहरण के लिए, यदि हमसे वादा किया जाता है कि पहली सूची को छोड़कर दूसरी सूची के सभी तत्व पहली सूची के सभी तत्वों से बहुत बड़े हैं, तो क्या यह पहली समस्या को कम नहीं करता है?
रॉबिन कोठारी

Ω(logn)

T(n)

जवाबों:


5

नहीं, ऐसा एल्गोरिथ्म मौजूद नहीं हो सकता।

t

2t2t+1t+1

nn/2tn/2t

to(n)

एक साइड नोट पर, ऐसा लगता है कि एक एल्गोरिथ्म द्वारा इस बाउंड का मिलान करना संभव है, जहां हर तत्व की तुलना अन्य सूची के आसपास के हिस्से के आकार के लगभग लॉग से की जाती है। यदि यह रुचि का है, तो मैं विवरणों को काम करने की कोशिश करूंगा।

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