Line Sorter

Сортуйте рядки в алфавітному порядку, за довжиною, у зворотному порядку або випадково

Спробувати приклад

Вхідні рядки

Відсортовані рядки

Працює локально · Безпечно вставляти секрети
Відсортовані рядки з'являться тут…

Що таке сортування рядків?

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

Більшість мов програмування сортують рядки за замовчуванням за лексикографічним порівнянням, яке порівнює символи за їхніми кодовими точками Unicode. Це означає, що великі літери сортуються перед малими («Banana» перед «apple»), а цифри — перед літерами. Сортування з урахуванням локалі, яке інколи називають природним сортуванням або зіставленням, виправляє це за допомогою мовних правил. localeCompare() у JavaScript, locale.strxfrm() у Python і команда POSIX sort з LC_COLLATE забезпечують впорядкування з урахуванням локалі.

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

Навіщо використовувати цей сортувальник рядків?

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

Миттєве сортування
Результати з'являються під час введення або вставки. Перемикайтесь між шістьма режимами сортування та порівнюйте результати без повторного запуску.
🔒
Обробка з пріоритетом конфіденційності
Усе сортування виконується у вашому браузері за допомогою JavaScript. Ваш текст залишається на вашому пристрої. Нічого не надсилається на сервер і не реєструється.
🔀
Шість режимів сортування
A-Z, Z-A, спочатку найкоротші, спочатку найдовші, зворотній порядок і випадкове перемішування. Один вхідний текст охоплює найпоширеніші завдання впорядкування рядків.
📋
Без реєстрації
Відкрийте сторінку і починайте сортувати. Без реєстрації, без розширення, без настільного застосунку. Працює на будь-якому пристрої з сучасним браузером.

Сценарії використання сортувальника рядків

Розробка фронтенду
Сортуйте списки CSS-класів, інструкції імпорту або ключі перекладу i18n в алфавітному порядку. Послідовне впорядкування зменшує конфлікти злиття у системі контролю версій і прискорює перевірку коду.
Бекенд-розробка
Впорядковуйте списки залежностей у package.json, requirements.txt або go.mod перед комітом. Сортуйте назви стовпців SQL під час створення операторів CREATE TABLE або порівняння відмінностей схеми.
DevOps та інфраструктура
Сортуйте назви змінних середовища у файлах .env, записи ConfigMap у Kubernetes або блоки змінних Terraform. Алфавітний порядок дозволяє помітити дублікати та відсутні значення під час перевірки.
Тестування та автоматизація
Сортуйте лог-файли тестів за міткою часу або повідомленням для швидкого виявлення збоїв. Перемішуйте вхідні тестові дані, щоб перевірити, що поведінка застосунку не залежить від порядку вставки.
Інженерія даних
Впорядковуйте заголовки CSV або списки стовпців перед написанням скриптів міграції схеми. Сортуйте рядки вибірки даних за довжиною, щоб знайти скорочені або незвично довгі значення в конвеєрі обробки даних.
Студенти та учні
Сортуйте словникові списки, бібліографічні записи або навчальні нотатки в алфавітному порядку. Перемішуйте рядки флеш-карток для випадкових сеансів повторення без встановлення окремого застосунку.

Довідник режимів сортування рядків

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

РежимОписМетод JSПриклад виведення
A-ZAlphabetical ascendinglocaleCompare()apple, banana, cherry
Z-AAlphabetical descendinglocaleCompare() reversedcherry, banana, apple
Length (short)Shortest line firsta.length - b.lengthfig, date, apple, banana
Length (long)Longest line firstb.length - a.lengthbanana, apple, date, fig
ReverseFlip line order, no reorderingArray.reverse()Last line becomes first
RandomRandomized comparator (biased)Math.random() - 0.5Different every run

Алгоритми сортування під капотом

Коли ви викликаєте Array.sort() у JavaScript, рушій V8 (Chrome, Node.js) використовує Timsort починаючи з 2019 року. Інші середовища виконання використовують різні алгоритми. У таблиці нижче порівнюються найпоширеніші алгоритми сортування, що застосовуються у стандартних бібліотеках мов програмування. Всі вони справляються з робочими навантаженнями сортування рядків у цьому інструменті менш ніж за мілісекунду для типових вхідних даних (до 100 000 рядків).

АлгоритмВикористовується вСкладністьПримітки
TimsortPython, Java (Arrays.sort)O(n log n)Stable, fast on partially sorted data
QuicksortC stdlib, V8 (older)O(n log n)In-place, unstable by default
Merge sortMost stable-sort implementationsO(n log n)Stable, predictable, uses extra memory
IntrosortC++ std::sort, .NETO(n log n)Hybrid: quicksort + heapsort fallback
Radix sortFixed-length keys, integersO(nk)Non-comparative, linear for short keys

Приклади коду

Сортуйте рядки програмно у JavaScript, Python, Go та командному рядку. Кожен приклад охоплює алфавітне, за довжиною та зворотнє сортування.

JavaScript
const text = `banana
apple
cherry
date
fig`

// Sort A-Z (locale-aware)
const az = text.split('\n').sort((a, b) => a.localeCompare(b)).join('\n')
// → "apple\nbanana\ncherry\ndate\nfig"

// Sort by line length, shortest first
const byLen = text.split('\n').sort((a, b) => a.length - b.length).join('\n')
// → "fig\ndate\napple\nbanana\ncherry"

// Reverse line order (no alphabetical sorting)
const reversed = text.split('\n').reverse().join('\n')
// → "fig\ndate\ncherry\napple\nbanana"

// Remove duplicates and sort
const unique = [...new Set(text.split('\n'))].sort().join('\n')
Python
text = """banana
apple
cherry
date
fig"""

lines = text.splitlines()

# Sort A-Z (case-insensitive)
az = sorted(lines, key=str.lower)
# → ['apple', 'banana', 'cherry', 'date', 'fig']

# Sort by line length
by_len = sorted(lines, key=len)
# → ['fig', 'date', 'apple', 'banana', 'cherry']

# Reverse original order
rev = lines[::-1]
# → ['fig', 'date', 'cherry', 'apple', 'banana']

# Shuffle randomly
import random
random.shuffle(lines)  # modifies in place
Go
package main

import (
	"fmt"
	"sort"
	"strings"
)

func main() {
	text := "banana\napple\ncherry\ndate\nfig"
	lines := strings.Split(text, "\n")

	// Sort A-Z
	sort.Strings(lines)
	fmt.Println(strings.Join(lines, "\n"))
	// → apple\nbanana\ncherry\ndate\nfig

	// Sort by length
	sort.Slice(lines, func(i, j int) bool {
		return len(lines[i]) < len(lines[j])
	})
	fmt.Println(strings.Join(lines, "\n"))
	// → fig\ndate\napple\nbanana\ncherry
}
CLI (bash)
# Sort lines A-Z
sort file.txt

# Sort lines Z-A (reverse)
sort -r file.txt

# Sort numerically (first field)
sort -n data.txt

# Sort by line length (awk + sort + cut)
awk '{ print length, $0 }' file.txt | sort -n | cut -d' ' -f2-

# Shuffle lines randomly
shuf file.txt          # GNU coreutils
sort -R file.txt       # alternative (not truly uniform)

# Sort and remove duplicates
sort -u file.txt

Часті запитання

У чому різниця між сортуванням A-Z і природним сортуванням?
Сортування A-Z (лексикографічне) порівнює символи за кодовою точкою Unicode. Це означає, що «item10» сортується перед «item2», оскільки символ '1' має меншу кодову точку, ніж '2'. Природне сортування розглядає вбудовані числа як числові значення, тому «item2» стоїть перед «item10». Цей інструмент використовує лексикографічне сортування з урахуванням локалі через localeCompare(), що коректно обробляє символи з діакритикою, але не виконує природне сортування чисел.
Чи надсилається мій текст на сервер під час сортування рядків?
Ні. Усе сортування відбувається у вашому браузері за допомогою методу Array.sort() у JavaScript. Текст ніколи не покидає ваш пристрій. Ви можете перевірити це, відкривши вкладку «Мережа» у DevTools і переконавшись, що під час вставки та сортування тексту жодних запитів не надсилається.
Скільки рядків може опрацювати цей інструмент?
Інструмент добре працює з десятками тисяч рядків. Реалізація Timsort у V8 обробляє 100 000 рядків менш ніж за 100 мілісекунд на сучасному обладнанні. Для файлів більшого розміру (кілька мегабайтів) командний інструмент на кшталт команди sort в Unix є ефективнішим, оскільки він може використовувати дискове сортування злиттям і кілька потоків.
Як працює сортування без урахування регістру?
Цей інструмент використовує String.localeCompare() з параметром { sensitivity: 'base' }, що робить порівняння нечутливим до регістру: «Apple» і «apple» сортуються разом, а не в окремих групах. За замовчуванням localeCompare() є чутливим до регістру; явний параметр необхідний для поведінки без урахування регістру. Якщо вам потрібне суворе сортування з урахуванням регістру, де великі літери стоять першими, команда sort в Unix без прапорця -f забезпечує таку поведінку.
Чи можна сортувати рядки та видаляти дублікати одночасно?
Цей інструмент сортує рядки, але не видаляє дублікати. Щоб видалити повторювані рядки, скористайтеся інструментом Duplicate Line Remover у тій самій категорії. Спочатку відсортуйте текст тут, а потім вставте результат у засіб видалення дублікатів — і ви отримаєте чистий, унікальний, відсортований список.
У чому різниця між зворотним сортуванням і сортуванням Z-A?
Зворотнє сортування перевертає початковий порядок рядків: останній рядок стає першим, передостанній — другим і так далі. Жодного алфавітного порівняння не відбувається. Сортування Z-A впорядковує рядки у спадному алфавітному порядку незалежно від їхньої початкової позиції. Якщо вхідний текст вже відсортовано A-Z, зворотнє та Z-A дають однаковий результат, але для невідсортованого тексту результати відрізняються.
Як сортувати рядки за певним стовпцем або полем?
Цей інструмент сортує за вмістом цілого рядка. Щоб сортувати за певним стовпцем (наприклад, другим полем у файлі, розділеному табуляцією), використовуйте команду sort в Unix з прапорцем -k: sort -t$'\t' -k2,2 file.txt. У Python розбивайте кожен рядок і використовуйте функцію ключа: sorted(lines, key=lambda x: x.split('\t')[1]).