UltKit
Изображения11
PDF13
Документы и данные7
Видео6
Аудио4
Другие инструменты22

Сортировка строк

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

Порядок

Символов: 0 · слов: 0 · строк: 0

Символов: 0 · слов: 0 · строк: 0

Всё работает в этой вкладке браузера. Ваш текст никуда не загружается и не сохраняется.

Что делает инструмент

Сортировка строк — инструмент, который упорядочивает строки по алфавиту с учётом правил языка вашего браузера, в естественном порядке (file2 перед file10), по первому числу в строке, по длине или в случайном порядке.

До
пункт 10
пункт 9
Пункт 1
После
Пункт 1
пункт 9
пункт 10

Алфавитный порядок — не то же самое, что порядок кодов символов

Самый простой способ отсортировать текст на компьютере — по коду символа, но результат получается странным: все заглавные буквы (коды от 65 до 90 в ASCII) идут раньше всех строчных (от 97 до 122), поэтому «Zebra» оказывается перед «apple», а буквы с диакритикой уходят после z. Люди ожидают словарного порядка, который лингвисты называют сортировкой с учётом правил языка (collation). Этот инструмент использует 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 яблок». Строки без числа уходят в конец. Порядок по длине сортирует по числу видимых символов, от самых коротких, а при равенстве — по алфавиту; он полезен, чтобы найти самые короткие доменные имена или обрезанные записи.

Как работает перемешивание

Перемешивание использует алгоритм Фишера — Йетса (опубликован Рональдом Фишером и Фрэнком Йетсом в 1938 году, адаптирован для компьютеров Ричардом Дурстенфельдом в 1964 году): он идёт по списку с конца и меняет каждую строку местами со случайно выбранной строкой, стоящей на этом же месте или раньше. При хорошем источнике случайности любой порядок равновероятен. Случайные числа поступают от mulberry32 — небольшого генератора псевдослучайных чисел с начальным значением, поэтому результат перемешивания не меняется, пока вы не запросите новое. Его состояние занимает 32 бита, поэтому он даёт не более 4,3 млрд разных перемешиваний — меньше, чем 6,2 млрд порядков всего для 13 строк. Для вопросов викторины, плейлистов и выбора очерёдности выступлений этого достаточно, но не для лотерей и всего, где речь о деньгах или безопасности.

Чтобы очистить список перед сортировкой, сначала пропустите его через Удаление повторяющихся строк.

Часто задаваемые вопросы

Почему file10 оказывается перед file2?
Обычная алфавитная сортировка сравнивает символы по одному, и 1 идёт раньше 2. Выберите натуральный порядок, который воспринимает каждую последовательность цифр как число, чтобы file2 стоял перед file10.
Ставит ли сортировка слова с заглавной буквы первыми?
Нет. Сортировка учитывает правила языка, поэтому apple и Apple стоят рядом. Только простая сортировка по коду символа ставит все заглавные буквы перед всеми строчными.
Действительно ли перемешивание случайное?
Используется непредвзятое перемешивание Фишера — Йетса на основе быстрого генератора псевдослучайных чисел с начальным значением. Для повседневных задач этого достаточно, но для розыгрышей, лотерей и задач безопасности он не подходит.
Куда попадают строки без числа при сортировке по числу?
В конец списка, а между собой они упорядочиваются по алфавиту. Строки, в которых число есть, сортируются по значению первого найденного в строке числа.
Можно ли отсортировать строки в обратном алфавитном порядке?
Да, выберите Я→А. Используется то же сравнение с учётом языка, что и для А→Я, только в обратном порядке, поэтому слова с диакритикой и заглавными буквами остаются на разумных местах.