【问题标题】:Quicksort implementation in C?C中的快速排序实现?
【发布时间】:2011-03-29 23:54:35
【问题描述】:

我真的很喜欢 C 中的 qsort 函数。它非常易于使用,让我可以拖延学习 C++ 模板类型。我对此有几个问题:

  • 所使用的算法是始终使用快速排序还是依赖于编译器实现?
  • 您会推荐使用此功能还是模板有真正的好处?
  • 为了避免安全问题/段错误,我有什么需要注意的吗?

【问题讨论】:

  • 如果您的应用程序是用 C 编写的,那么坚持使用 C 并不丢人。但如果一切都是用 C++ 编写的,而您只是使用 C++ 让您感到困惑的 C 特性,那么您不妨学习 C++。

标签: c quicksort qsort


【解决方案1】:

所使用的算法总是快速排序还是依赖于编译器实现?

这取决于实现。

您会推荐使用此功能还是对模板有真正的好处?

C 没有模板。如果您需要 C 中的通用排序函数,那么qsort 是一个不错的选择。

如果你打算使用 C++,那么你应该使用std::sort,它更容易正确使用并提供类型安全。

为了避免安全问题/段错误,我应该注意什么?

如果您不正确地使用该函数(例如,如果您传递了错误的参数或者您的比较函数中有错误),那么您的程序很可能会崩溃(或者可能会以其他方式执行不正确)。当然,这并不特定于qsort;对于程序中使用的任何东西都是如此。

【讨论】:

    猜你喜欢
    • 2017-02-18
    • 1970-01-01
    • 2019-11-20
    • 2017-05-09
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多