TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.35K subscribers
Post #6398 1.68K
Удивительная история развития сортировки в JDK

Как вы считаете, если выполнить java.util.Arrays.sort(), то какая сортировка будет вызвана? Quicksort? Timsort? И та, и другая, потому что для объектов вызывается Timsort, а для примитивов (чисел int, long, float и так далее) — Dual-Pivot Quicksort. В JDK 6 для объектов использовался стандартный Merge sort, а для чисел классическая реализация Quicksort с одним опорным элементом, предложенная Джоном Бентли и Дугласом МакИлрой. В JDK 7 оба алгоритма поменялись: теперь объекты сортируются с помощью Timsort, автор Тим Петерс, а для простых типов данных используется Dual-Pivot Quicksort, предложенный мною вместе с Джоном Бентли и Джошем Блоком в 2009 году. Эта сортировка используется более 15 лет не только в JDK, но и в Android (хотя и немного устаревшая версия).

А зачем нам вообще второй алгоритм сортировки, если есть Timsort? Почему не использовать один и для объектов, и для примитивов? Сегодня я, как автор, расскажу историю Dual-Pivot Quicksort: как он начинался, как развивался и как продолжает развиваться сейчас.


Читать: https://habr.com/ru/companies/sberbank/articles/841342/?utm_campaign=841342

@a_cup_of_java | Другие наши каналы
  • 🔥 6
  • 👍 2
More from @a_cup_of_java
  1. Oct 13, 2026Post #8692
  2. Oct 13, 2026Showboat и Rodney помогают показать работу ИИ-агента Саймон Уиллисон собирает демонстрации…
  3. Oct 13, 2026Spring Boot Actuator: свои проверки здоровья и доступ к диагностике В Spring Boot 4 провер…
  4. Oct 13, 2026Хаотичный планировщик помог найти ошибку в тесте JFR В январском разборе Йоханнес Бехберге…
  5. Oct 13, 2026Развёрнутое пояснение: 1. Spring создаёт OrderService с областью singleton: этот экземпляр…
  6. Oct 13, 2026Post #8687
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →