Найти строку, которая всегда будет отсортирована рядом с данной строкой, независимо от других элементов - PullRequest
0 голосов
/ 17 апреля 2019

Допустим, у меня есть какая-то строка s1 и функция сортировки f, можно ли найти какую-то другую строку s2, такую, что для всех других строк f([s1, s2, ..., sn]) s2 всегда сразу после s1.

Что нужно, чтобы найти это? например, требуются ли предположения о длине и / или составе s1 и s2, нужно ли знать функцию сортировки?

В качестве конкретного примера - у меня есть набор строк customer-someCustomerName, и мне нужно указать mongodb minKey="customer-someCustomerName" и maxKey=..., где maxKey точно равен "customer-someCustomerName" + 1. Насколько я знаю, это просто стандартный алфавитный вид. Я не контролирую имена клиентов (они даже не начинаются с «customer-», они начинаются с некоторого префикса клиента, которого в настоящее время 7, но будет больше)

В конкретном случае стандартной алфавитной сортировки (и с учетом буквенно-цифровых значений) достаточно ли просто добавить "0" в конец?

1 Ответ

0 голосов
/ 17 апреля 2019

Если ваш алфавит Σ = {a 1 , a 2 , ..., a n } и сортировкаФункция сравнивает строки лексикографически с a 1 2 <... <a <sub>n , затем строка-преемница равна S будет Sa 1 .Для случая Σ = [0-9A-Za-z] это действительно то же самое, что добавить '0' в конце.Однако есть другие символы, которые предшествуют '0' в ASCII, например, '!'или ПРОБЕЛ, или контрольные.Возьмите таблицу ASCII и укажите наименьшее значение, которое поддерживает ваша функция сортировки / ядро ​​базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...