TGViewer
Библиотека программиста Библиотека программиста @proglibrary · 78.3K subscribers
Post #11862 3.79K
Как ускорить Quicksort на C, сократив ветвления

Процессор теряет время, когда ошибается в предсказании условий. Автор разбора переписал разбиение массива: элементы распределяются относительно опорного значения без условных переходов.

На Apple M1 сортировка 50 млн чисел заняла 1,70 секунды вместо 3,70. После дополнительных оптимизаций вариант показал 0,86 секунды против 1,19 у std::sort. На Intel Xeon соотношение другое, поэтому результат нужно проверять на своём процессоре.

В разборе с кодом на C показаны буфер, защита от неудачного разбиения и обработка малых участков.
easylang.online Branch-Avoidant Quicksort
  • ❤ 12
  • 👍 10
  • 🥰 3
  • 👾 3
  • 🔥 2
  • 😁 2
  • 😍 2
  • 👏 1
More from @proglibrary
  1. Sep 29, 2026Кодить — это хорошо, а разбираться в том, что происходит за кадром, тоже полезно. Что там…
  2. Sep 29, 2026🖥 Git ускорили и добавили несколько полезных фишек: 🟡 git add --resolved — безопаснее за…
  3. Sep 29, 2026Почему Big O недостаточно для выбора структуры данных в C++ Автор создал hashbrowns, набор…
  4. Sep 28, 2026👩‍💻 Что на самом деле происходит внутри Go map? После Go 1.24 обычный map внутри работае…
  5. Sep 28, 2026Как сделать системную утилиту понятнее и приятнее Системная утилита не должна молча выполн…
  6. Sep 27, 2026Как модернизировать устаревшее приложение с ИИ без полного переписывания ИИ может перенест…
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 →