Как реализовать естественный алгоритм сортировки в C ++?

В данном посте я покажу как можно отсортировать смешанные данные, т.е. строки, которые содержат числа, слова, даты и.т.д.

Допустим у нас имеется файл содержащий данные в виде:

34 Jack 2016-01-22
43 Oliver 2016-01-23
3 Charlie 2016-01-20
7 Harry 2016-01-19
78 Alfie 2016-01-22
13 Thomas 2016-01-22
32 Joshua 2016-01-11
21 William 2016-01-08
17 James 2016-01-25
2 Amelia 2016-01-26
54 Daniel 2016-01-22
33 Lily 2016-01-17
11 Emily 2016-01-22

то есть каждая строка содержит цифры и слова. Нам надо отсортировать данный список по порядку так чтобы все строки содержащие цифры шли по возрастанию.
Стандартные методы сортировка естественно не подходят, но способ всё-таки есть — это натуральная сортировка.

См. листинг:

Результат:

Соответственно, если нам надо наоборот сделать сортировку по убыванию, то достаточно поменять оператор «<» в строке 135 на «>»

и тогда мы получим:





Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Enter the text from the image below