Understanding Radix Sort Algorithm: Step-by-Step in JavaScript ??
Harshit Pandey
React Native | JavaScript | Typescript | Android | IOS | DSA | Node JS
Radix Sort is a linear sorting algorithm that sorts elements by processing them digit by digit. It is an efficient sorting algorithm for integers or strings with fixed-size keys.
Rather than comparing elements directly, Radix Sort distributes the elements into buckets based on each digit’s value. By repeatedly sorting the elements by their significant digits, from the least significant to the most significant, Radix Sort achieves the final sorted order.
领英推荐
Radix Sort Algorithm
The key idea behind Radix Sort is to exploit the concept of place value. It assumes that sorting numbers digit by digit will eventually result in a fully sorted list. Radix Sort can be performed using different variations, such as Least Significant Digit (LSD) Radix Sort or Most Significant Digit (MSD) Radix Sort.
function getMax(arr) {
const length = arr.length;
let mx = arr[0];
for (let i = 1; i < length; i++) {
if (arr[i] > mx) mx = arr[i];
}
return mx;
}
function countSort(arr, exp) {
const length = arr.length;
let output = Array(length);
let count = Array(10).fill(0, 0);
for (let i = 0; i < length; i++) {
const digit = Math.floor(arr[i] / exp) % 10;
count[digit]++;
}
for (let i = 1; i < 10; i++) {
count[i] += count[i - 1];
}
for (let i = length - 1; i >= 0; i--) {
const digit = Math.floor(arr[i] / exp) % 10;
output[count[digit] - 1] = arr[i];
count[digit]--;
}
return output;
}
function radixSort(arr) {
const maxNumber = getMax(arr);
let sortedArr = [...arr];
for (let exp = 1; Math.floor(maxNumber / exp) > 0; exp *= 10) {
const sortedIteration = countSort(sortedArr, exp);
sortedArr = sortedIteration;
}
return sortedArr;
}
const arr = [64, 25, 12, 22, 11];
console.log("Original Array:", arr);
const outputArray = radixSort(arr);
console.log("Sorted Array:", outputArray);