JSFiddle - React, Tailwind, and code Playground

by Derek Anderson

JavaScript

//radix sort
//sort a list of numbers without comparison

function sort(inputArray){
	var getMap = () => {return [[],[],[],[],[],[],[],[],[],[]]};
	var map = getMap();
  var iterations = Math.max.apply( Math, inputArray ).toString().length;

  for(var iteration = 1; iteration <= iterations; iteration++) { // k
  	for(var itemIndex = 0; itemIndex < inputArray.length; itemIndex++) { // n
    	var item = inputArray[itemIndex];
      var itemString = String(item);
    	var value = itemString.charAt(itemString.length - iteration) || 0;
      map[value] = map[value] || [];
      map[value].push(item);
    }
    inputArray = [].concat.apply([], map);
    map = getMap();
  }
  
  return inputArray;
}


document.body.innerHTML = sort([155,78,8764,308,20,23,67,5,4,100,10023]);