【问题标题】:Is `qsort()` really QuickSort? [duplicate]`qsort()` 真的是快速排序吗? [复制]
【发布时间】:2013-04-18 02:12:51
【问题描述】:

也许是个愚蠢的问题,但能否保证 C 标准库中的 qsort() 例程确实实现了快速排序算法?

【问题讨论】:

  • 不,事实上只有非常糟糕的实现才会将其实现为快速排序。天真的快速排序有堆栈溢出问题,很容易解决,但即使这样它也有 O(n²) 的运行时间。最先进的实现称为“introsort”,从适当的(非天真的)快速排序开始,但在这种情况下检测最坏情况运行时并切换到堆排序(或任何其他 O(n log n) 排序都可以)。

标签: c sorting


【解决方案1】:

由于标准中没有具体指定 QuickSort,因此没有。

【讨论】:

    猜你喜欢
    • 2016-03-02
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 2016-02-17
    • 1970-01-01
    • 2017-06-25
    • 2018-09-28
    相关资源
    最近更新 更多