की सॉर्ट सरणी यदि आकार एन की एक सरणी में केवल 3 मान 0, 1 और 2 (किसी भी बार दोहराया गया है) उन्हें सॉर्ट करने का सबसे अच्छा तरीका क्या है। सबसे अच्छा जटिलता इंगित करता है। स्थान और समय जटिलता दोनोंआकार एन
आकार एन
उत्तर
पर विचार प्रत्येक संख्या का आवृत्तियां गणना और बाद में सही मायने रखता है के साथ सरणी को भरने, इस O(n)
उर्फ गणना क्रमबद्ध करें: http://en.wikipedia.org/wiki/Counting_sort –
उर्फ कबूतर प्रकार, उर्फ रेडिक्स सॉर्ट। – falstro
@ एंड्रियास एन का मान शांत हो सकता है इसलिए कुछ मामलों में गिनती थोड़ा परेशानी हो सकती है –
ध्वनि डिज्कस्ट्रा के डच राष्ट्रीय ध्वज समस्या की तरह एक बहुत कुछ है।
आप एक समाधान है कि उनकी गिनती का उपयोग नहीं करता की जरूरत है, बाहर की जाँच http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Sort/Flag/
Untested सी शैली समाधान:
int count[3] = {0, 0, 0};
for (int i = 0; i < n; ++i)
++count[array[i]];
int pos = 0;
for (int c = 0; c < 3; ++c)
for (int i = array[c]; i; --i)
array[pos++] = c;
'हस्ताक्षरित' या 'size_t' अधिक उपयुक्त होगा। – GManNickG
हास्केल दो लाइनर:
count xs = Map.toList $ Map.fromListWith (+) [ (x, 1) | x <- xs ]
countingSort xs = concatMap (\(x, n) -> replicate n x) (count xs)
> countingSort [2,0,2,1,2,2,1,0,2,1]
[0,0,1,1,1,2,2,2,2,2]
- 1. एन आकार
- 2. एन आकार
- 3. आकार एन का ऐरे, एक तत्व एन/2 बार
- 4. एसक्यूएल इंट (एन) का आकार क्या है?
- 5. एन * एन ग्रिड
- 6. आर में एक बॉक्सप्लॉट बनाएं जो नमूना आकार (एन)
- 7. एन डिब्बे
- 8. ओ (एन लॉग एन) समय
- 9. आसान: टी (एन) = टी (एन -1) + एन को इटरेशन विधि
- 10. एन-टियरड बनाम एन-स्तरित वास्तुकला/डिजाइन
- 11. (एन) शाप
- 12. ओ (एन)
- 13. एन इंजेक्ट
- 14. लंबाई एन
- 15. एन स्ट्रिंग
- 16. एन स्ट्रिंग्स
- 17. एन लंबाई
- 18. एन [स्ट्रिंग]
- 19. एन संख्या
- 20. एन ** के
- 21. Google एन-ग्राम वेब एपीआई
- 22. आप ओ (लॉग एन) और ओ (एन लॉग एन) के बीच अंतर कैसे देखते हैं?
- 23. जो तेजी से कोड के लिए संकलित करता है: "एन * 3" या "एन + (एन * 2)"?
- 24. एन * (कनेक्ट + भेजें + बंद करें) बनाम (नागल अक्षम + कनेक्ट + एन * भेजें + बंद करें), एन> 1
- 25. एलोका (एन) और चार एक्स [एन] के बीच क्या अंतर है?
- 26. बिग ओह नोटेशन ओ ((लॉग एन)^के) = ओ (लॉग एन)?
- 27. स्काला में विशेषता, फंक्शन एन, या विशेषता-विरासत-फंक्शन एन?
- 28. एसक्यूएल एन-टू-एन एकाधिक मानों से मेल खाता है
- 29. पहले एन और अंतिम एन कॉलम कैसे कट करें?
- 30. क्यों QuickSort एन लॉग एन है के लिए अंतर्ज्ञानी स्पष्टीकरण?
क्या सबसे अच्छा है इस मामले में मतलब है? – EvilTeach
यह निर्भर करता है कि आपका क्या मतलब है "सर्वश्रेष्ठ" - सबसे सुविधाजनक? सबसे तेज़ भंडारण के मामले में सबसे कुशल? सबसे पोर्टेबल? –