2010-10-20 14 views
7

में पहले एन पूर्णांक क्रमबद्ध करें मैं एक गैर-तुलना या तुलना आधारित एल्गोरिदम की तलाश में हूं जो पहले एन पॉजिटिव पूर्णांक के किसी भी क्रमपरिवर्तन वाले सरणी को सॉर्ट कर सकता है, जो ओ (एन) समय जटिलता होनी चाहिए और ओ (1) अंतरिक्ष जटिलता।रैखिक समय और निरंतर स्थान

क्या कोई मौजूदा एल्गोरिदम है जो इन विनिर्देशों को फिट करता है?

+0

सभी पूर्णांक मौजूद हैं या अंतराल हैं? –

+6

सरणी में 1 से n तक सभी पूर्णांक लिखने के बारे में क्या? –

+0

ओ (एन) क्या सापेक्ष है? एक पूरी तरह से जगह एल्गोरिदम (कोई साइड स्टोरेज) ओ (1) अपने इनपुट के आकार में होगा ... ओह, और ओ (एन) समय या भंडारण? –

उत्तर

10

यदि आपके पास 1 से एन उपस्थिति के सभी पूर्णांक के साथ आकार एन की एक सरणी है, तो आप निम्न ओ (एन) एल्गोरिदम का उपयोग कर सकते हैं (नोट: सरणी इस छद्म कोड के लिए 1 आधारित हैं ताकि अनावश्यक परिचय न दें एल्गोरिदम समझाते समय जटिलता):

  1. पहले सरणी तत्व पर प्रारंभ करें।
  2. यदि इसकी सरणी अनुक्रमणिका इसके मूल्य से मेल खाती है, तो अगले पर जाएं।
  3. यदि नहीं, तो इसे अपने मान के अनुरूप सरणी अनुक्रमणिका में मान के साथ स्वैप करें।
  4. चरण 3 दोहराएं, जब तक कि कोई और स्वैप आवश्यक न हो।
  5. तो सरणी के अंत में नहीं, अगले सरणी तत्व करने के लिए जाना है, अन्यथा चरण 2.
  6. हो गया
+4

@ माइकल गोल्डशेटिन: यदि आपके पास कोई है लंबाई एन की सरणी जिसमें 1 से एन के सभी पूर्णांक होते हैं, आप सरणी में क्रम में पूर्णांक लिखने पर इसे क्यों क्रमबद्ध करेंगे? –

+4

@ मार्क, शायद वह उस मामले पर विचार कर रहा है जहां पूर्णांक रिकॉर्ड के लिए केवल कुंजी हैं। यहां, बस क्रम में पूर्णांक लिखना संबंधित रिकॉर्ड को क्रमबद्ध क्रम में रखने में मदद नहीं करेगा। –

+0

हां, मैं उस मामले पर विचार कर रहा हूं जहां पूर्णांक कुंजी हैं, – fmunshi

2
+0

वह एल्गोरिदम इसकी सादगी में सुंदर है। मुझे इसे किसी दिन उपयोग करने का बहाना मिलना होगा। –

1

कदम 7

  • जाओ जाओ जब आप सुनिश्चित हैं कि सभी पूर्णांक 1 और एन के बीच हैं तो आप counting sort

  • +0

    मैंने सोचा कि उसे निरंतर स्थान की आवश्यकता है। गिनती की तरह विकी - "क्योंकि यह लंबाई के + 1 और एन के सरणी का उपयोग करता है, इसलिए एल्गोरिदम का कुल स्थान उपयोग भी होता है ओ (एन + के)। " – sreeprasad

    +0

    हाँ लेकिन आमतौर पर के << एन – anijhaw

    संबंधित मुद्दे