Skip to main content
3 of 3
fixed the misleading indentation using Chrome's {} button

Implementing RadixSort using JavaScript

Can someone review my code? I am trying to implement radix sort in JavaScript.

var numbers = [90, 46, 7, 12, 100, 68];
var length = numbers.length;
var buckets = new Array(10);

Clear();
function Clear() {
    for (var i = 0; i < 10; i++)
        buckets[i] = [];
}

RadixSort();
function RadixSort() {
    var maxElement = Math.max.apply(null , numbers);
    var maxDigits = GetDigitsCount(maxElement);
    var count = 0;
    while (count < maxDigits) {
        CopyToArray();
        for (var index = 0; index < length; index++) {
            var tenIndex = Math.pow(10, count);
            var remNumber = parseInt(numbers[index] / tenIndex, 10);
            var bucketIndex = remNumber % 10;
            buckets[bucketIndex].push(numbers[index]);
        }
        count++;
    }
    for (var i = 0; i < 9; i++) {
        var arr = buckets[i];
        var arrLength = arr.length;
        for (var j = 0; j < arrLength; j++)
            console.log(arr[j]);
    }
}

function GetDigitsCount(number) {
    var count = 0;
    while (number > 0) {
        number = parseInt(number / 10);
        count++;
    }
    return count;
}

function CopyToArray() {
    var k = 0;
    for (var i = 0; i < 10; i++) {
        var arr = buckets[i];
        var arrLength = arr.length;
        for (var j = 0; j < arrLength; j++) {
            numbers[k++] = arr[j];
        }
        buckets[i] = [];
    }
}

Geeky
  • 145
  • 9