Рассмотрим вторую итерацию первой l oop, когда по модулю = 100. Тогда эта строка кода:
countQueues[arr[j] % modulo].push(arr[j]); //error here
может пытаться получить доступ к countQueues [до 99], но countQueues имеет размер 10.
Эта проблема связана с попыткой сначала реализовать радикальную сортировку наиболее значимых ди git. 1-я итерация использует 10 очередей, 2-я итерация - 100 очередей, 3-я итерация - 1000 очередей ..., которые можно упростить с помощью рекурсии, но при этом потребуется много места, 10 будет увеличено до мощности countDigits.
Реализация Наименьшее значение di git радикальной сортировки сначала позволяет избежать этой проблемы. Можно использовать матрицу [countDigits] [10]. Начальный проход генерирует счетчики и сохраняет их в матрице, где matrix [i] [] - это массив из 10 счетчиков для числа вхождений каждого di git, от 0 до 9. Счетчик конвертируется в начальные индексы для каждая логическая ячейка матрицы [i]. Затем радикальная сортировка выполняется в проходах countDigits, сначала наименее значащая цифра / корзина.