/* * Counting sort is an algorithm for sorting a collection of objects according to keys that are small integers; * that is, it is an integer sorting algorithm. * more information: https://en.wikipedia.org/wiki/Counting_sort * counting sort visualization: https://www.cs.usfca.edu/~galles/visualization/CountingSort.html */ function countingSort(arr, min, max) { let i; let z = 0; const count = []; for (i = min; i <= max; i++) { count[i] = 0; } for (i = 0; i < arr.length; i++) { count[arr[i]]++; } for (i = min; i <= max; i++) { while (count[i]-- > 0) { arr[z++] = i; } } return arr; } const arr = [3, 0, 2, 5, 4, 1]; // Array before Sort console.log("-----before sorting-----"); console.log(arr); // Array after sort console.log("-----after sorting-----"); console.log(countingSort(arr, 0, 5));