हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की एक सरणी लेता है और गिनती सॉर्ट एल्गोरिदम का उपयोग करके इसे सॉर्ट करता है।
यदि हम अधिकतम मान जानते हैं, तो हम रेखीय समय और स्थान में संख्याओं की एक सरणी को सॉर्ट करने के लिए काउंटिंग सॉर्ट एल्गोरिथम का उपयोग कर सकते हैं। अधिकतम मान का उपयोग करके प्रत्येक अनुक्रमणिका मान की आवृत्ति की गणना करने के लिए उस आकार की एक सरणी बनाएं।
फिर, हम उन सभी अनुक्रमणिकाओं को निकालेंगे जिनकी गैर-शून्य संख्याएं हमारे परिणाम सरणी में हैं।
सरणी के सबसे बड़े तत्व का पता लगाने के लिए हम पहले एक लूप का उपयोग करेंगे, एक बार हमारे पास यह हो जाने के बाद हम सरणी को सॉर्ट करने के लिए काउंटिंग सॉर्ट का उपयोग करेंगे।
उदाहरण
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 ]