हमें एक JavaScript फ़ंक्शन लिखना है जो नंबर्स के ऐरे को लेता है और काउंटिंग सॉर्ट एल्गोरिदम का उपयोग करके इसे सॉर्ट करता है।
यदि हमें अधिकतम मान पता है, तो हम काउंटिंग सॉर्ट एल्गोरिदम का उपयोग करके नंबर्स के ऐरे को रैखिक समय और स्पेस में सॉर्ट कर सकते हैं। अधिकतम मान का उपयोग करके उस आकार का एक ऐरे बनाएं ताकि प्रत्येक इंडेक्स वैल्यू की घटना गिनी जा सके।
फिर, हम उन सभी इंडेक्स को निकालेंगे जिनकी गिनती नॉन-जीरो है अपने रिजल्ट ऐरे में।
हम पहले एक लूप का उपयोग करके ऐरे के सबसे बड़े एलिमेंट का पता लगाएंगे, एक बार हमारे पास होने पर हम ऐरे को सॉर्ट करने के लिए काउंटिंग सॉर्ट का उपयोग करेंगे।
उदाहरण
const arr = [4, 3, 1, 2, 3]; const findMaximum = arr => arr.reduce((acc, val) => val > acc ? val: acc, Number.MIN_VALUE) const countingSort = (arr = []) => { const max = findMaximum(arr); const counts = new Array(max + 1); counts.fill(0); arr.forEach(value => counts[value]++); const res = []; let resultIndex = 0; counts.forEach((count, index) => { for (let i = 0; i < count; i++) { res[resultIndex] = index; resultIndex++; }; }); return res; }; console.log(countingSort(arr));आउटपुट
कंसोल में आउटपुट होगा:
[ 1, 2, 3, 3, 4 ]