Что такое естественный порядок, когда мы говорим о сортировке? - PullRequest
44 голосов
/ 02 марта 2011

Что подразумевается под естественным порядком. Предположим, у меня есть объект Employee с именем, возрастом и датой присоединения, сортировка по естественному порядку?

Ответы [ 4 ]

55 голосов
/ 02 марта 2011

Естественное упорядочение - это своего рода буквенно-цифровой вид, который кажется естественным для людей.

В классическом буквенно-цифровом виде мы будем иметь что-то вроде:

1 10 11 12 2 20 21 3 4 5 6 7

Если вы используете естественный порядок, он будет:

1 2 3 4 5 6 7 10 11 12 20 21

В зависимости от языка, естественный порядок иногда игнорирует заглавные и акцентированные буквы (т. Е. Все акцентированные буквы обрабатываются как их неакцентированный аналог).

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

С моей точки зрения, заказ сотрудника начнется с упорядочения по имени с использованием естественной сортировки, затем возраста и, наконец, даты присоединения.

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

4 голосов
/ 02 марта 2011

Для строк, содержащих числа, это означает 1,2,3,4,5,6,7,8,9,10,11 вместо 1,10,11,2,3,4,5,6,7,8,9

0 голосов
/ 13 июля 2018

Для Java упорядочение, предоставляемое интерфейсом Comparable, называется естественным упорядочением, поэтому интерфейс Comparator обеспечивает, так сказать, неестественное упорядочение.

0 голосов
/ 13 июня 2017

Если кто-то вроде меня обнаружил, что читает следующую статью:

https://www.copterlabs.com/natural-sorting-in-mysql/

(что, кстати, действительно полезно), остерегайтесь этого, потому что это еще один метод сортировки.

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

Естественная сортировка не имеет ничего общего с сортировкой посначала длина строки, а затем в алфавитном порядке, если две строки имеют одинаковую длину.Хотя статья, на которую я ссылаюсь, интересна, не делайте ошибку, которую я сделал, и думайте, что это правильный способ сортировки естественным образом.

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