2015-04-29 28 views
-2

Я знаю, что можно сортировать массив int или массив строк, используя Radix сортировать легко. Мне нужен способ сортировки двух одновременно.Radix Sort Int и String

Пример: Я хотел бы отсортировать слова какого-либо текста по количеству вхождений слов, но слова с таким же количеством явлений, которые я хотел бы сортировать по алфавиту. Используя некоторый другой сравнительный вид, это становится очень простым, но с использованием Radix Я действительно не знаю, как это сделать.

Обс: Я не хочу код, я просто прошу объяснить возможный способ сделать это.

Спасибо.

ответ

0

Вы можете найти некоторое представление для строки в виде числа, так что в алфавитном порядке меньшие строки имеют меньшее число. Вызовите это представление f (string). Найдите максимально возможное значение f (string), назовите это f_max. Теперь вы можете представить каждый элемент как (# вхождения строки) * (f_max + 1) + f (string), который будет очень большим. Затем просто сделайте сортировку радикса для чисел.

+0

Спасибо, что сделают эту работу !! – user1674