1. function countSort(array) {
    2. let hash = {},
    3. min = array[0],
    4. max = array[0],
    5. result = [];
    6. for (let i = 0; i < array.length; i++) {
    7. if (!(array[i] in hash)) {
    8. hash[array[i]] = 1
    9. } else {
    10. hash[array[i]] += 1
    11. }
    12. if (array[i] > max) {
    13. max = array[i]
    14. } else if (array[i] < min) {
    15. min = array[i]
    16. }
    17. }
    18. for (let i = min; i <= max; i++) {
    19. if (i in hash) {
    20. for (let j = 0; j < hash[i]; j++) {
    21. result.push(i)
    22. }
    23. }
    24. }
    25. return result
    26. }