Какую сортировку использует Java по умолчанию?

Ответ

Для массивов примитивов — Dual-Pivot Quicksort. Для объектов — Timsort (гибрид merge и insertion sort, разработан для Python, перенесён в Java). Timsort стабилен и эффективен на реальных данных, а для примитивов стабильность не важна — важна скорость.

Разбор: Java сознательно разделяет алгоритмы: для примитивов — Dual-Pivot Quicksort (стабильность не важна, важна скорость и отсутствие накладных расходов на объекты), для объектов — Timsort (стабилен, эффективен на частично упорядоченных данных). Ловушки в путанице: единый Quicksort игнорирует требование стабильности для объектов, перестановка алгоритмов местами неверна, а чистый MergeSort — это не то, что реально используется (Timsort — его адаптивный гибрид с insertion sort).

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться