Я Java-разработчик, но у меня нет хорошего алгоритма для определенного типа сортировки, который мне нужно сделать.
По сути, я собираюсь получить некоторые данные, возвращаемые из запроса (до нескольких тысяч строк). Я забочусь только о сортировке по одному столбцу. По иронии судьбы этот столбец, скорее всего, уже будет отсортирован, но не так, как мне нужно.
Это просто так:
Я получаю список идентификаторов пользователей, и мне нужно отсортировать их таким образом, чтобы он проходил по всему списку и начинался заново. Простой пример проще, чем объяснение:
Скажем, данные такие:
А
В
В
С
D
D
Действительный порядок сортировки для моей цели будет следующим:
A
В
С
D
В
D
A
По сути, мне нужно, чтобы каждый пользователь "получил ход", прежде чем вернуться к ним. Вероятно, будет неравномерное количество пользователей, поэтому любой дополнительный может просто сложиться в конце.
Опять же, я делаю это на Java, но на данный момент я не привязан к определенной структуре данных и т. Д.
[Дополнительная информация: если это помогает, то, в частности, я делаю генерацию данных для нагрузочного теста и хочу минимизировать количество входов одного и того же пользователя в приложение несколько раз, поэтому я хочу, чтобы мой тест проходил через всех доступных пользователей приложения прежде чем вернуться к началу списка. Тем не менее, данные являются реальными данными, и я не могу гарантировать, что у каждого пользователя будет одинаковое количество действий.]
Спасибо!
Том