Большинство алгоритмов сортировки пытаются отсортировать набор элементов без произвольного набора значений. Напротив, сортировка подсчетом делает это по-другому, предоставляя вам только конечный набор значений для сортировки. Это чрезвычайно полезно, когда дело доходит до времени выполнения, потому что больше алгоритмов сортировки может получить только время выполнения O (N log N), в то время как сортировка подсчетом может получить время выполнения O (N).

Это связано с тем, что вы можете сортировать конечное множество самостоятельно и, таким образом, просто подсчитывать каждый экземпляр значения. Именно здесь сортировка подсчетом получила свое название.

Вот реализация этого, где набор значений может быть только от 0 до 9:

countSort = (arr) => {
    let hash = {}
    for(let i of arr) {
        if(!hash[i]) {
            hash[i] = 1
        } else {
            hash[i] = hash[i] + 1
        }
    }
    let spot = 0;
    let count = 0
    while(count < 10) {
        if(hash[count]) {
            arr[spot] = count
            hash[count] = hash[count] - 1
        } else {
            count++
        }
    }
    return arr
}

Это приложение можно использовать не только с числами. Пока набор конечен, вы можете использовать сортировку подсчетом. Это ускорит работу ваших программ и сделает работу более плавной.