Во-первых, есть строгое доказательство, что сортировка произвольного массива не может быть выполнена быстрее, чем за O(n*log(n)) операций (log тут по основанию 2).
Во-вторых, у сортировок есть много параметров: время в лучшем/худшем/среднем случае, доп. память, стабильность.
QuickSort имеет время O(n log n) в среднем и лучшем, а в худшем - за O(n^2). Ещё она нестабильная и требует O(n) памяти. В обычных условиях это устраивает, но худший случай в ней - её слабое место.
Есть модификации быстрой сортировки, позволяющие уменьшить время худшего случая до O(n log n).
В языках программирования встроенные сортировки - это обычно либо быстрая сортировка с улучшениями, либо какая-нибудь стабильная сортировка, какой-нибудь merge sort.
Так что либо бери родную, либо пиши сам. Самая простая модификация быстрой сортировки, при которой худшее время станет O(n log n) - это сделать случайный выбор опорного элемента.
Ну и читай
https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D...