fixmint
UK

Чому 10 іде раніше за 2 і як це виправити природним сортуванням

Автор: · · оновлено 8 листопада 2026 р. · 4 хв читання

Звичайне сортування за алфавітом порівнює перший символ кожного елемента, потім другий і так далі. Перший символ у «10» це 1, а 1 йде раніше за 2, тож «10» стоїть перед «2». Для тексту такий порядок правильний, а для чисел ні. Природне сортування читає кожну послідовність цифр як одне ціле число, тому 2 іде раніше за 10. Доповнення чисел нулями, наприклад 02 і 10, вирішує ту саму проблему в самих назвах.

Сортування рядківСписок не в порядкуБезкоштовно

Чому комп'ютер так сортує

Звичайне сортування порівнює текст позицію за позицією, зліва направо, за кодами символів або порядком сортування мови. Воно зупиняється на першій відмінності. Для слів це годиться: «apple» іде перед «banana», бо перші літери різні.

З числами це не працює. Візьмімо три назви файлів: file-2, file-9 і file-10. В останній парі порівняння доходить до шостої позиції, де стоять символи 1 і 9. Одиниця менша, тож file-10 іде першим. Звичайний порядок такий: file-10, file-2, file-9. Для літер це правильно, але для того, хто читає числа, це неправильно.

Природне сортування

Природне сортування, його ще називають числовим або «людським», розбиває кожен текст на послідовності цифр і послідовності інших символів. Послідовності цифр порівнюються за значенням, а все інше як текст. Тож 2 іде раніше за 10, а file-2 раніше за file-10. Багато файлових менеджерів використовують таке сортування за замовчуванням, тому тека з пронумерованими фото зазвичай виглядає в них правильно.

Відсортуйте список у fixmint

  1. Вставте список в інструмент сортування, по одному елементу в рядку.
  2. У розділі «Порядок» виберіть «Числа» замість A→Z.
Звичайне A→ZЧисла
item1, item10, item2item1, item2, item10

Порядок «Числа» читає цифри як цілі числа. Видалити дублікати пропонує той самий порядок «Числа». Спочатку інструмент прибирає повтори, а потім сортує, тож результат унікальний і впорядкований за числом.

Доповнення нулями: інший спосіб

Коли ви самі називаєте файли, зробіть однакову ширину для кожного числа: 01, 02 і так далі до 10, або від 001 до 100. Тоді звичайне сортування дає правильний порядок скрізь, зокрема в програмах без природного сортування. Доповнення також зберігає порядок, коли список виходить за межі вашого комп'ютера, бо порядок закладено в самих назвах файлів. Це працює, бо однакова ширина робить порівняння посимвольно таким самим, як числовий порядок. Ширина має вміщати найбільше число. Схема з трьома цифрами охоплює до 999, тож файл 1000 стояв би між 100 і 101 і порушив би порядок. Коли список переростає свою ширину, доповніть усі числа до більшої ширини.

Використовуйте це для нових файлів, а для вже наявних перейменуйте їх пакетно, додавши нулі.

Де з'являється звичайне сортування

Нумеровані назви трапляються скрізь: фото, експортовані як IMG_1 до IMG_120, розділи Розділ 1 до Розділ 30, списки треків, номери рахунків і версії програм. Після звичайного сортування будь-який із них може виглядати неправильно, бо першa цифра визначає позицію. Розділ 10 опиняється поруч із Розділом 1, а Розділ 2 майже в кінці.

Позначки з літерами працюють так само. Частина 2a, Частина 2b і Частина 10 у природному сортуванні йдуть саме в такому порядку, бо спочатку порівнюються числа, а літери визначають порядок лише всередині одного числа. Звичайне сортування ставить Частину 10 перед Частиною 2a.

Дати потребують уваги. У природному сортуванні дати з днем на початку, як 4/11/2026 і 12/01/2026, порівнюються спочатку за днем, тож 4/11 іде раніше за 12/01, хоча 12 січня настає раніше в році. Дати, записані з року на початку, як 2026-11-04, правильно сортуються як звичайний текст, тож використовуйте саме такий формат, якщо список має сортуватися за датою.

Перевірте результат після сортування

Перевірте межі, де звичайне сортування найчастіше помиляється: перехід від 9 до 10 і від 99 до 100. У сортуванні «Числа» ці місця стоять на своїх місцях. Якщо в списку змішано числа з доповненням і без нього, починайте перевірку саме з цих місць, бо змішування проявляється там.

Обирайте порядок свідомо

Використовуйте A→Я для слів, імен і назв, де важливий сенс літер. Використовуйте «Числа» для списків, елементи яких починаються з кількості, сторінки, розділу або версії. Використовуйте довжину, коли найкоротші елементи мають стояти першими. Перемішування потрібне для випадкового порядку, і при кожному натисканні результат буде іншим. Правила звичайного алфавітного порядку описано в статті як відсортувати список за алфавітом.

Особливі випадки

  • Змішані рядки. Природне сортування порівнює цілі рядки зліва направо. У списку, що починається з імені, спочатку вирішує ім'я, тож «Bob 1» іде після «Ada 10», хоча 1 менше за 10.
  • Змішана ширина. Числа з доповненням і без нього в одному списку в природному сортуванні можуть вважатися рівними, тож їхній порядок залежатиме від вхідних даних. Оберіть одну ширину для кожного списку.
  • Десяткові числа. Природне сортування читає 1.9 як 1, потім 9, а 1.10 як 1, потім 10, тож 1.9 іде першим. Це годиться для номерів версій, де 1.10 є пізнішим релізом. Для десяткових значень, як-от ціни, 1.10 менше за 1.9, тож природний порядок буде неправильним. Доповніть десяткову частину до однакової кількості знаків: 1.10 і 1.90.
  • Регістр. За замовчуванням сортування вважає Apple і apple однаковими, тож вони стоять разом у тому порядку, в якому були вставлені. Регістрозалежне сортування змінює це.

Переклад з Англійський оригінал за допомогою ШІ.

Коментарі

    Коментарів поки немає. Будьте першим.

    Ваша оцінка (необов’язково)

    Ваша пошта ніколи не показується і не зберігається.

    Обкладинка: How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 сторінки про людські, економічні та стратегічні переваги, які залишаються рідкісними, коли ШІ може виконувати більшість когнітивної роботи.

    $3.84Придбати на GumroadАнглійською