C中的Quicksort实现?

Del*_*ani 3 c quicksort qsort

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

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

Jam*_*lis 5

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

它取决于实现.

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

C没有模板.如果你需要在C中使用泛型排序功能,那么这qsort是一个不错的选择.

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

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

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