मान लें कि हम वास्तविक संख्याओं की सूची सॉर्ट करना चाहते हैं । मान लें कि हमें एक ब्लैक बॉक्स दिया गया है जो तुरंत वास्तविक संख्याओं को सॉर्ट कर सकता है। इस ब्लैक बॉक्स के इस्तेमाल से हमें कितना फायदा हो सकता है?एन √
उदाहरण के लिए, क्या हम ब्लैक बॉक्स पर केवल कॉल के साथ संख्याओं को सॉर्ट कर सकते हैं ? सबसे अच्छा एल्गोरिथ्म जो मुझे मिला है वह ब्लैक बॉक्स में कॉल का उपयोग करता है । लेकिन मैं इसे और बेहतर नहीं कर पाया। यहाँ मेरा एल्गोरिथ्म है जो मर्ज-सॉर्ट के समान है:एन
पहले सूची को में सूचीबद्ध करें। लगभग आकार के साथ। फिर इन सूचियों को सॉर्ट करने के लिए ब्लैक बॉक्स में कॉल का उपयोग करें । अंत में, ब्लैक बॉक्स का उपयोग करके क्रमबद्ध सूचियों को निम्न प्रकार से मर्ज करें:√ रों1,एस2,। । । ,एस √ √ √
सूचियों के सबसे छोटे तत्वों को एक नई सूची में डालें , फिर इसे सॉर्ट करने के लिए ब्लैक बॉक्स पर कॉल करें। में नंबर (प्रथम और सबसे छोटी तत्व ) में सबसे छोटी संख्या हो जाएगा । हम इसे आउटपुट सूची के पहले स्थान पर रख सकते हैं।
यह मानते हुए कि तत्व को से चुना गया है , हम को सॉर्ट लिस्ट के दूसरे सबसे छोटे तत्व , और फिर के दूसरे सबसे छोटे सदस्य की गणना करने के लिए उस पर ब्लैक बॉक्स चलाते हैं ।
हम तब तक जारी रखते हैं जब तक सभी तत्व छँट नहीं जाते। इस भाग के लिए ब्लैक बॉक्स कॉल की कुल संख्याएल [ 1 ] एल एस एस जे एल [ 1 ] रों जे एस एन - √
n। इसलिए कुल मिलाकर कॉल की कुल संख्या होगी ।
दूसरी ओर, ऐसा लगता है कि हमें निम्न प्रकार की छँटाई के लिए आवश्यक संख्या तुलनाओं पर निचली-बाउंड का उपयोग करने में सक्षम होना चाहिए: हम ब्लैक बॉक्स को का उपयोग करके लागू कर सकते हैं तुलना। अगर हम ब्लैक बॉक्स पर कॉल के साथ समस्या को हल कर सकते हैं और रैखिक-समय में विलय कर सकते हैं तो हम तुलनाओं के साथ वास्तविक संख्याओं को सॉर्ट कर सकते हैं जो कि असंभव है।ओ( √no(nlgn)
मुझे लगता है कि हम यह साबित कर सकते हैं कि ब्लैक बॉक्स के लिए कॉल की संख्या के लिए एक कम-सीमा है, क्योंकि ब्लैक बॉक्स का उपयोग करने वाले बहुत सारे तुलनाओं को साझा किया जाएगा और इसलिए हमारे तर्क में फिर से लिखा गया है।
अद्यतन: जैसा कि अन्य पदों का सुझाव है, एक भी प्राप्त करने योग्य है।