byte - т.е. целые, да еще и максимум 256? Проходим по массиву, считаем количество каждого числа. Т.е. заводим массив из 256 нулей, идем по вашему массиву, и инкрементим значение маленького массива, используя в качестве индекса значение из большого массива. Получим то что нужно без сортировки вообще.
Потом просто вызываем формулу нужное количество раз для каждого элемента.
Что то похожее в комментах предложил
dollar, если я правильно понял.