C中的Quicksort实现?

我非常喜欢C中的qsort函数。它非常易于使用,并且允许我拖延学习C ++模板类型。 我有几个问题:

  • 算法总是使用快速排序还是依赖于编译器实现?
  • 您会建议使用此function还是模板真的有益处?
  • 是否有任何我应该注意的事项以避免安全问题/段错误?

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

它取决于实现。

您会建议使用此function还是模板真的有益处?

C没有模板。 如果你需要C语言中的generics排序function,那么qsort是一个不错的选择。

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

是否有任何我应该注意的事项以避免安全问题/段错误?

如果您不正确地使用该函数(例如,如果您传递不正确的参数或者您的比较函数中有错误),那么您的程序可能会崩溃(或者可能会执行不正确的操作)。 当然,这不是qsort特有的; 对于程序中使用的任何内容都是如此。