2013-04-24 3 views
3

Возможно, глупый вопрос, но есть ли какая-либо гарантия того, что рутина qsort() в стандартной библиотеке C действительно реализует алгоритм QuickSort?Действительно ли `qsort()` действительно QuickSort?

+0

Нет, и на самом деле только очень плохие реализации будут реализовывать его как quicksort. У наивного quicksort есть проблемы с переполнением стека, которые легко фиксируются, но даже тогда он имеет время работы O (n²). Наиболее продвинутая реализация называется «introsort» и начинается с правильной (не наивной) быстрой сортировки, но обнаруживает наихудшее время выполнения и переключается на heapsort (или любой другой вид O (n log n)) в этом случае. –

ответ

5

Поскольку в стандарте нет ничего, что конкретно назначает QuickSort, нет.

Смежные вопросы