const ITEMS = 20;
let list = new Array(ITEMS);
function countingSort(){
let count = [];
let min = Math.min(...list);
let max = Math.max(...list);
console.log("Original list: " + list);
console.log("Init counts: ");
for(var i = min; i <= max; i++){
count[i] = 0;
console.log(i + " : " + count[i]);
}
for(var i = 0; i < list.length; i++){
count[list[i]]++;
}
console.log("Final Counts: ");
for(var i=min; i<=max; i++){
console.log(i + " : " + count[i]);
}
let j = 0;
for(var i = min; i <= max; i++){
while(count[i] > 0){
list[j] = i;
j++;
count[i]--;
}
}
console.log("Sorted list: " + list);
}
function initList() {
for (let i = 0; i < ITEMS; i++)
list[i] = Math.round(Math.random() * 100);
}
initList();
countingSort();