Проверка индексов с помощью Radix Sort

Я читал реализацию сортировки radix, которая работает с типами данных int, которые меньше десяти, то есть они состоят из одного sig-fig вместо одного. (например, 1, 0, 3, 4, 9, … только для ясности). Эта реализация не слишком сложна, но как насчет чисел больше десяти? Как вы сравниваете только цифры в одном месте на первом проходе, затем цифры в десятых на втором проходе и т. Д. Без явного преобразования в элементы массива в строки или типы символов. (или это просто необходимо?)

1

Решение

Вы всегда можете извлечь n-ую цифру как v / (10 ** (n-1))% 10.

Переход от однозначной сортировки по основанию к многозначной сортировке общего типа не является тривиальным. В зависимости от того, в каком порядке вы обрабатываете цифры, вы либо заканчиваете отслеживанием границ группы, либо должны использовать «стабильный» вариант.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]