नहीं, यह संभव नहीं है, हालांकि यह मेरा काम बहुत आसान होगा :)।
आपके पास एक ओ (लॉग एन) कारक है जिसे आप टालना नहीं कर सकते हैं। आप इसे समय या स्थान के रूप में लेना चुन सकते हैं, लेकिन इससे बचने का एकमात्र तरीका सॉर्ट नहीं करना है। ओ (लॉग एन) स्पेस के साथ आप निरंतरता की एक सूची बना सकते हैं जो ट्रैक रखती है कि आपने उन तत्वों को कैसे रखा है जो काफी फिट नहीं थे। रिकर्सन के साथ इसे ओ (1) ढेर में फिट करने के लिए बनाया जा सकता है, लेकिन यह केवल ओ (लॉग एन) स्टैक फ्रेम का उपयोग करके किया जा सकता है।
यहां मर्ज-सॉर्टिंग बाधाओं और 1-9 से भीड़ की प्रगति है।ध्यान दें कि स्थिर स्थान और रैखिक स्वैप की जुड़वां बाधाओं के कारण ऑर्डर इनवर्जन को ट्रैक करने के लिए आपको लॉग-स्पेस एकाउंटिंग की आवश्यकता होती है।
. -
135792468
. -
135792468
: .-
125793468
: .-
123795468
#.:-
123495768
:.-
123459768
.:-
123456798
.-
123456789
123456789
कुछ नाजुक सीमा की स्थिति, द्विआधारी खोज की तुलना में थोड़ा कठिन सही पाने के लिए, और यहां तक कि इस (संभव) के रूप में है, और इसलिए एक बुरा होमवर्क समस्या नहीं है; लेकिन वास्तव में एक अच्छा मानसिक अभ्यास।
अद्यतन जाहिर है मैं गलत हूँ और वहाँ एक एल्गोरिथ्म है कि हे (एन) समय और हे (1) स्थान प्रदान करता है। मैंने खुद को प्रबुद्ध करने के लिए कागजात डाउनलोड किए हैं, और इस उत्तर को गलत के रूप में वापस ले लिया है।
क्या प्रश्न विशेष रूप से मर्ज-सॉर्ट बताता है? मुझे पता है कि क्रमशः क्रमबद्ध करना संभव है, लेकिन ओ (एन) समय में नहीं (कम से कम मैंने कभी इसके बारे में नहीं सुना है।) – jrista
नहीं, ऐसा नहीं है। मैं विलय चरण के समानता बना रहा हूं। यह समान दिखता है। – Sid
यदि आपने प्रश्न का सटीक शब्द पोस्ट किया है, तो ऐसा लगता है कि यह विलय के साथ कुछ भी नहीं है। ऐसे क्रमबद्ध एल्गोरिदम हैं जो ओ (1) स्पेस और ओ (एन) इन-प्लेस हैं जो पूर्व-क्रमबद्ध सरणी (यानी सम्मिलन क्रम) के लिए हैं। Mergesort उनमें से एक नहीं है, और यह अच्छी तरह से जाना जाता है कि यह उनमें से एक नहीं है, तो ... – jrista