Самый быстрый способ сделать это (особенно если у вас достаточно маленький алфавит для работы, а не весь Unicode) - это сделать Pigeonhole sort .
Обратите внимание, что для очень большой строки это будет намного быстрее, чем Arrays.sort()
, потому что Arrays.sort()
- это (IIRC) сортировка слиянием, поэтому она выполняется за O(n log n)
время, в то время как сортировка Pigeonhole выполняется с O(n + N)
время, где n
- количество элементов, а N
- количество элементов алфавита.