Что такое естественный порядок, когда мы говорим о сортировке?

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

Ответ 1

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

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

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

Если вы используете Natural ordering, это будет:

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

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

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

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

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

Ответ 2

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

Ответ 3

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

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

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

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

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

Ответ 4

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