Фича сортировки с числами

Нашли баг? Воспользуйтесь поиском чтобы убедиться что его не нашли до вас и если он не упоминается добавьте его описание (желательно пошаговое).
Чем для автора программы отличаются баги, недоработки и фичи.

Модератор: motyara

Ответить
sas800507
Сообщения: 4
Зарегистрирован: Пн апр 06, 2009 1:04 pm

Фича сортировки с числами

Сообщение sas800507 »

Заметил такую фичу с сортировкой. Если имеются файлы начинающиеся с цифр, то сортировка происходит неверно.
Например имеем файлы:
1.0.txt
1.1.txt
1.2.txt
1.10.txt
Результат сортировки:
1.0.txt
1.10.txt
1.1.txt
1.2.txt
При этом настройки сортировки в "Настройках" никак не влияют на результаты сортировки.
Проводник Windows и Total Commander дают сортировку в виде:
1.0.txt
1.1.txt
1.2.txt
1.10.txt
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

Полагаю что в данной ситуации сортировка была произведена все-таки верно, ведь число "1.10" меньше чем число "1.2".
sas800507
Сообщения: 4
Зарегистрирован: Пн апр 06, 2009 1:04 pm

Re: Фича сортировки с числами

Сообщение sas800507 »

Если рассматривать 1.1 и 1.10 как числа, то они по законам математики равны и следовательно меньше 1.2. А если рассматривать как перечисление, т.е. список, то 1.10 больше 1.2. Для меня список файлов всегда являлся списком, поэтому 1.2 для меня меньше 1.10. Например, такой список документации:
1.1 Документ 1
1.2 Документ 2
1.3 Документ 3
....
1.10 Документ 10
1.11 Документ 11
...
1.20 Документ 20
Т.е. файлы представляют собой список документов.
Кроме того, по Вашей логике получается что 1.1 = 1.10 и 1.2=1.20 и т.д., хотя в списке это не так.
Я понимаю, что в отношении сортировки можно долго спорить и что софт бесплатный, но функцию такой сортировки считаю полезной. Возможно учесть указанный способ сортировки, как это сделано в большинстве Shell приложений?
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

В том-то и проблема в плане "двусмысленности логики" у подобных алгоритмов... программе сложновато однозначно безошибочно определить в какой ситуации "1.10" является "числом с дробной частью", а в какой "подпунктом". На случай, если вдруг у кого-нибудь появится желание опровергнуть это утверждение, приведу пример:

названия файлов, где цифра рассматривается как дробное число:
результаты измерений при температуре -72.25°C.xls
результаты измерений при температуре 17.01°C.xls

названия файлов, где цифра рассматривается как подпункт:
глава 3.1.doc
глава 3.3.doc

А потому при любом варианте реализации этой системы на мой взгляд вопрос будет по сути схожим с вопросом про зебру - "она черная в белую полоску или белая в черную". Можно конечно добавить третий вид сортировки, где дробные числа рассматривались бы как подпункты, но тогда вероятно будет слишком проблемно переключаться между этими тремя видами сортировки переходя из одного каталога в другой. Впрочем и в этом случае можно найти решение - сделать переключение не в настройках, а через кнопку с ниспадающим списком, но не будет ли тогда проще банально вместо точки использовать какой-нибудь другой символ? (имеется в виду "_" или "-")
sas800507
Сообщения: 4
Зарегистрирован: Пн апр 06, 2009 1:04 pm

Re: Фича сортировки с числами

Сообщение sas800507 »

У проводника Windows есть определённый алгоритм сортировки, который всегда даёт верную,с моей точки зрения, последовательность. Хотелось бы видеть такую же возможность и в Вашей программе. Могу привести пример как сделана настройка, например в FreeCommander. При настройке способа сортировки (в нём называется "Упорядочить") есть 2 пункта:
"по Алфавиту" - сортировка аналогичная Вашей программе
"Естественный порядок (как в Проводнике)" - сортировка выполняется аналогично проводнику Windows.
Может устроить голосование по этому вопросу? ;-)
tanooki
Сообщения: 13
Зарегистрирован: Вт июл 01, 2008 8:54 am

Re: Фича сортировки с числами

Сообщение tanooki »

Полностью согласен с sas800507.
Редко сталкивался с подобной проблемой, но когда сталкивался, это меня сильно раздражало.
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3431
Зарегистрирован: Пт окт 12, 2007 3:26 pm
Контактная информация:

Сообщение Max Diesel »

Подозреваю что голосование выявит не необходимый алгоритм, а лишь мнение пользователей относительно этого алгоритма... а меня в данном вопросе больше интересует алгоритм. Для информации скажу, что до недавнего времени сортировка с учетом значений чисел производилась программой по алгоритму, который "изготовил" я, и алгоритм этот работал не так быстро как хотелось бы... в этой теме проблема необходимости более быстрого алгоритма была изложена и долгое время пребывала без решения... в итоге силами пользователя GLaz был разработан-таки достойный алгоритм, который обходил мою реализацию по скорости и точности. В данном случае мое нежелание производить модификацию этого алгоритма связано с тем фактом, что во-первых это резко снизит его скорость работы, а во-вторых добавит кучу новых проблем по "конкретным сортировкам". А потому я предпочел бы следовать принципу из несмешного анекдота, заканчивающегося словами "ничего не трогай, ничего не меняй"... Впрочем если есть желающие внести коррективы в представленный указанной темой код, я не буду против этих корректив (если они конечно окажутся действительно стоящими и при этом не сделают алгоритм значительно медленнее).
Ответить