C qsort()与C++ sort()的区别

2023年 9月 21日 35.7k 0

C qsort()与C++ sort()的区别

在这里,我们将看到C语言中的qsort()和C++中的sort()之间的区别。

C语言提供了qsort()函数,可用于对数组进行排序。函数的参数和语法如下所示。

void qsort(void *base, size_t num, size_t size, int (*comparator) (const void*, const void*));

登录后复制

这个函数接受数组的基地址、数组的元素数量、数组中每个项的大小以及一个比较函数。

C++提供了sort()函数,它位于C++ STL中。其参数和语法如下所示。

void sort(T first, T last, Compare c);

登录后复制

这里不保证重复元素的顺序被保留。为了实现这个目的,我们可以使用C++ STL提供的stable_sort。

qsort()和sort()之间的区别

C中的qsort() C++中的sort()
它使用快速排序算法。 它使用introsort。这是一种混合排序算法。不同的实现使用不同的算法。GNU C++ STL使用三部分混合排序。Introsort、Quicksort和Insertion Sort。
C标准没有提到 这个问题。

这个排序算法的复杂性。

在这种情况下,C++11的sort()函数的复杂度是O(n logn)。之前的某些版本的sort()函数在最坏情况下的复杂度是O(n2),而在平均情况下,它们的复杂度是O(nlogn)。 这个排序的运行时间比
sort() 运行时间小于qsort()。 qsort()对不同类型不够灵活。

sort() 运行时间小于qsort()。 qsort()对不同类型不够灵活 sort() is flexible. It can sort C arrays, C++ vectors, C++ deques, and some other containers. This sorting method is not type-safe. It uses unsafe void pointers to access data. This sorting technique is safer. It does not require the use of any unsafe void pointers to access data.

以上就是C qsort()与C++ sort()的区别的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论