Как отсортировать строки: по алфавиту, по длине и почему «10» встаёт перед «9»

4 сентября 2026 г.

Сортировка списка — задача на первый взгляд тривиальная, пока не встречаешь её классическую ловушку: строки с номерами выстраиваются как 1, 10, 11, 2, 3. Разбираемся, почему так происходит и какой режим сортировки нужен под каждую задачу.

Почему «10» встаёт перед «9»

Строки по умолчанию сортируются посимвольно, как в словаре. Символ «1» стоит раньше «9», поэтому «10» и «100» оказываются раньше «9» — алфавитная сортировка ничего не знает о числах. Для списков с номерами (пункты, артикулы, строки таблицы) нужен именно числовой режим: он читает строки как числа и выстраивает их по величине: 1, 2, 3, …, 9, 10.

Три режима, которые покрывают всё

  • алфавитная — для названий, фамилий, тегов (учитывает регистр или нет — по желанию);
  • числовая — для списков с числами, чтобы 10 шло после 9;
  • по длине строки — удобно, когда нужно найти «странные» записи или подготовить текст к обработке от простого к сложному.

Подводный камень: регистр и пробелы

В таблице символов заглавные буквы идут раньше строчных, поэтому без настройки «Отчёт» окажется раньше «акт». Плюс невидимый пробел в конце строки сдвигает её в неожиданное место. Хороший инструмент сортировки решает обе проблемы галочками «игнорировать регистр» и «убрать лишние пробелы». Отсортировать список можно в инструменте сортировки строк — вставили текст, выбрали режим, получили результат, а галочкой «убрать дубликаты» сразу почистили список.

Для случайного порядка (жеребьёвка, случайный выбор участника) сортировка не подходит — нужен перемешиватель: он работает по алгоритму Фишера—Йетса, где каждый порядок равновероятен.

Читайте также