क्या सभी विशिष्ट वांछित गुणों के साथ कोई छँटाई एल्गोरिथ्म नहीं है?


22

पर छंटाई एल्गोरिदम वेबसाइट है, तो निम्न दावा किया जाता है:

आदर्श छँटाई एल्गोरिथ्म में निम्नलिखित गुण होंगे:

  • स्थिर: समान कुंजियाँ पुन: व्यवस्थित नहीं की जाती हैं।
  • जगह में संचालित होता है, जिसमें अतिरिक्त स्थान की आवश्यकता होती है।O(1)
  • सबसे खराब स्थिति प्रमुख तुलना।O(nlg(n))
  • सबसे खराब स्थिति स्वैप।O(n)
  • अनुकूली: जब डेटा लगभग सॉर्ट किया जाता है या कुछ अद्वितीय कुंजी होती है, तो तक की गति ।O(n)

कोई एल्गोरिथ्म नहीं है जिसमें इन सभी गुण हैं, और इसलिए एल्गोरिथ्म को छांटने का विकल्प आवेदन पर निर्भर करता है।

मेरा सवाल है, क्या यह सच है

कोई [छँटाई] एल्गोरिथ्म नहीं है जिसमें ये सभी गुण हैं

और यदि हां, तो क्यों? इन गुणों के बारे में यह क्या है जो उन सभी को एक साथ पूरा करना असंभव बनाता है?


4
वे शायद बस का मतलब है कि कोई ज्ञात छँटाई एल्गोरिथ्म इन सभी गुणों है।
युवल फिल्मस

3
वहाँ भी एक तुलना आधारित तरह बैठक 3 और 4 है?
ग्रेबर्ड

4
@JohnFeminella यह कम से कम जरूरत की तुलना , लेकिन कैसे है कि हम स्वैप की संख्या के बारे में कुछ नहीं बता रहा है? Ω(nlog(n))
टॉम वैन डेर ज़ैंडन

2
@ जोहानफैमेला नाइटपिक: " से बेहतर " एक खाली बयान है। आप का उपयोग करना चाहिए Ω या Θ अगर आप कम सीमा के बारे में बात करना चाहते हैं। O(_)ΩΘ
राफेल

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

जवाबों:


6

WikiSort और GrailSort दो काफी हालिया एल्गोरिदम हैं जो जगह में स्थिर, सबसे खराब स्थिति कुंजी तुलना करते हैं। दुर्भाग्य से मैं उन्हें यह जानने के लिए अच्छी तरह से समझ नहीं पा रहा हूं कि क्या वे ( एन ) से संपर्क करते हैं या अनुकूली हैं इसलिए मुझे नहीं पता कि वे आपके पास चौथी और पांचवीं शर्तों का उल्लंघन करते हैं या नहीं।O(n lg(n))O(n)

कागज पर देख से , "अनुपात के आधार स्थिर यथा-स्थान विलय" पाकिस्तानी कब्जे वाले कश्मीर-पुत्र किम और आर्नी Kutzner द्वारा WikiSort GitHub पेज से जुड़े, किम और Kutzner दावा एक 'मर्ज' ऑपरेशन है कि है की (WikiSort, Mergesort का एक प्रकार है) लेकिन मुझे यकीन नहीं है कि अगर Wiki मेंO(n)स्वैप है। ग्रिल्सॉर्ट के तेजी से (विकीसॉर्ट गीथहब पेज में) होने का दावा किया गया है, इसलिए मैं सोच सकता हूं कि यह संभव है कि दोनों में सबसे खराब स्थितिहे(एन)स्वैप और अनुकूली हो।O(m(nm+1))O(n)O(n)

अगर कोई विकीसोर्ट और / या ग्रिल्सॉर्ट को समझने का प्रबंधन करता है तो मैं उनकी सराहना करूंगा कि वह इस बारे में मेरे खुले प्रश्न का जवाब भी दे



3

कोई भी ज्ञात एल्गोरिदम इन सभी गुणों को संतुष्ट नहीं करता है। जब हम और अधिक छँटाई एल्गोरिदम विकसित करने के बाद ये गुण बन गए। उदाहरण के लिए, बबल सॉर्ट (यकीनन सबसे आदिम सॉर्टिंग एल्गोरिथ्म), पहले कार्यान्वयन में सबसे अधिक संभावना वाली गैर-स्थिर थी, लेकिन स्थिर होने के लिए डिज़ाइन किया गया था क्योंकि कंप्यूटर वैज्ञानिकों ने बाद के कार्यान्वयन में इसे और अधिक कुशल बनाने की मांग की थी। इसलिए, कंप्यूटर वैज्ञानिकों ने सबसे अधिक संभावना सबसे अच्छे एल्गोरिदम से सबसे अच्छे लक्षणों को चुना है, और इसके परिणामस्वरूप, आप इन सभी वांछित लक्षणों की एक सूची लाए हैं। वास्तव में, किसी भी चीज़ में सभी दुनियाओं का सर्वश्रेष्ठ होना मुश्किल है। असंभव नहीं, लेकिन संभवतः हमारे वर्तमान आर्किटेक्चर के साथ असंभव है।

OΩΘ


1
स्वागत हे! यह अच्छा है, लेकिन मैं यह नहीं देखता कि स्थिरता का दक्षता के साथ क्या करना है: यह केवल एक प्राथमिकता है कि समान कुंजियों वाली सूची के वर्गों को एल्गोरिथम द्वारा "यादृच्छिक रूप से" अनुमति नहीं दी जानी चाहिए।
डेविड रिचेर्बी

हाँ, पर यह है provably संभव या असंभव?
जेम्स फॉल्कन

1

(हालांकि यह एक पुराना सवाल है, फिर भी मैं इस पर अड़ गया और ऐसा ही हो सकता है।)

वास्तव में एक एल्गोरिथ्म है जो संतुष्ट करता है (1) - (4) और दूसरी छमाही (5), इसलिए उपरोक्त आवश्यकता के बहुत करीब आता है। यह [1] में वर्णित है और पिछले दशकों में आविष्कार किए गए कई चालों को जोड़ती है।

[१]: फ्रांसेचिनी, जी। थ्योरी कम्पुट सिस्ट (२००)) ४०: ३२ :. https://doi.org/10.1007/s00224-006-1311-1

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