UltKit
Зображення11
PDF13
Документи й дані7
Відео6
Аудіо4
Інші інструменти22

Сортування рядків

Упорядкуйте будь-який список: за алфавітом в обох напрямках, у природному порядку, за першим числом у кожному рядку, за довжиною або у випадковому порядку. Сортування враховує мовні правила вашого браузера й повністю виконується на вашому пристрої.

Порядок

Символів: 0 · слів: 0 · рядків: 0

Символів: 0 · слів: 0 · рядків: 0

Працює повністю у цій вкладці браузера. Ваш текст не завантажується й не зберігається.

Що це робить

Сортування рядків упорядковує рядки за абеткою з урахуванням мови вашого браузера, у природному порядку (file2 перед file10), за першим числом у рядку, за довжиною або випадково.

До
item 10
item 9
Item 1
Після
Item 1
item 9
item 10

Алфавітний порядок — це не порядок кодів символів

Найпростіший для комп’ютера спосіб сортувати текст — за кодом символу, але результат виходить дивним: усі великі літери (коди від 65 до 90 в ASCII) стоять перед усіма малими (від 97 до 122), тому «Zebra» опиняється перед «apple», а літери з діакритикою потрапляють після z. Люди чекають словникового порядку, який лінгвісти називають колацією. Цей інструмент використовує Intl.Collator — реалізацію Unicode Collation Algorithm у браузері, тож «apple», «Banana» та «éclair» сортуються так, як очікує читач.

Колація залежить і від мови. У німецьких словниках ä стоїть поруч з a, а у шведських å, ä та ö розміщено після z, у самому кінці алфавіту. Інструмент використовує мову за замовчуванням вашого браузера, тому список, відсортований у шведській системі, дотримується шведських правил. Якщо ввімкнено ігнорування регістру, літери, що відрізняються лише регістром чи діакритикою, вважаються рівними й упорядковуються за наступною відмінністю.

Природний, числовий порядок і сортування за довжиною

Алфавітний порядок порівнює цифри по одній, тому «file10» стоїть перед «file2»: 1 менша за 2. Природний порядок сприймає послідовності цифр як цілі числа й дає file1, file2, file10 — так, як показують імена файлові менеджери, як-от Провідник Windows і Finder в macOS. Використовуйте його для назв розділів, списків версій, номерів рахунків і назв фото на кшталт IMG_9 та IMG_10.

Числовий порядок шукає в кожному рядку перше число, включно зі знаком мінус і десятковими дробами, та сортує за його значенням. Це підходить для прайс-листів, результатів і рядків на кшталт «12 apples». Рядки без числа йдуть у кінець. Порядок за довжиною (Тривалість) сортує за кількістю видимих символів, від найкоротшого, а за рівної довжини — за алфавітом; це корисно, щоб знайти найкоротші доменні імена або помітити обрізані записи.

Як працює випадкове перемішування

Перемішування використовує алгоритм Фішера—Єйтса (опублікований Рональдом Фішером і Френком Єйтсом у 1938 році та адаптований для комп’ютерів Річардом Дурстенфельдом у 1964-му): він проходить список з кінця й міняє кожен рядок місцями з випадково вибраним рядком, що стоїть на тому самому місці або раніше. За якісного джерела випадковості кожен порядок однаково ймовірний. Випадкові числа дає mulberry32 — невеликий псевдовипадковий генератор із початковим значенням, тому результат перемішування не змінюється, доки ви не запросите нове. Оскільки його стан має 32 біти, він може дати щонайбільше близько 4,3 мільярда різних перемішувань, що менше за 6,2 мільярда впорядкувань лише 13 рядків. Для запитань вікторини, плейлистів і вибору порядку виступів цього досить, але не для лотерей і всього, де йдеться про гроші чи безпеку.

Щоб очистити список перед сортуванням, спершу пропустіть його через Видалення дублікатів рядків.

Поширені запитання

Чому file10 опиняється перед file2?
Звичайний алфавітний порядок порівнює символ за символом, і 1 стоїть перед 2. Виберіть природний порядок, який сприймає кожну послідовність цифр як число, щоб file2 стояв перед file10.
Чи ставить сортування слова з великої літери першими?
Ні. Сортування використовує колацію з урахуванням мови, тому apple і Apple стоять поруч. Лише просте сортування за кодом символу ставить усі великі літери перед усіма малими.
Чи справді перемішування випадкове?
Використовується неупереджене перемішування Фішера—Єйтса на основі швидкого псевдовипадкового генератора із початковим значенням. Для щоденних завдань це достатньо чесно, але не підходить для розіграшів, лотерей і задач безпеки.
Куди потрапляють рядки без числа під час числового сортування?
У кінець списку, між собою — за алфавітом. Рядки, що містять число, упорядковуються за значенням першого числа в рядку.
Чи можна відсортувати рядки у зворотному алфавітному порядку?
Так, виберіть Я→А (Z→A). Використовується те саме порівняння з урахуванням мови, що й для A→Z, просто у зворотному напрямку, тож слова з діакритикою та з великої літери залишаються на доречних місцях.