为什么C++中的sort比C中的qsort慢非常非常多啊?

chinesefox0426 chinesefox0426 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
对比了std::sort和qsort,发现速度差异相当大,至少100倍,请大家帮我分析一下原因吧,非常感谢!!

char **text;

text = new char *[1000000];

/* text赋值部分省略 */

/* 用C中的qsort,大概10s左右就可以完成 */
int comp(char **p, char **q)
{ return strcmp(*p, *q); }
qsort(text, 1000000, sizeof(char *), comp);

/* 用C++中的std::sort,花了十分钟了还没有结果 */
bool cmp(const char *p, const char *q)
{ return strcmp(p, q) < 0 ? true : false; }
std::sort(text, text + 1000000, cmp);

...全文

相关推荐

qsort 与sort 的比较

在c++中qsort()排序函数的使用qsort函数应用大全,在同样的元素和同样的比较条件下,sort()的执行速度都比qsort()要快。另外,sort()是类属函数,可以用于比较任何容器,任何元素,任何条件。

楚湘潇瑶

深入理解JavaEE类路径管理与实战配置

类路径是JVM在运行时用来查找类文件的一种路径集合。它不仅决定了类加载器在何处查找.class文件,还影响着资源文件(如配置文件、图片等)的定位方式。类路径可以包含多个目录、JAR文件或ZIP文件,JVM会按照路径顺序依次查找所需的类。在Java中,类路径是一个由路径组成的列表,这些路径可以是本地文件系统中的目录、归档文件(如JAR、ZIP)或远程URL(在特定环境下使用)。类路径可以通过以下几种方式设置:系统环境变量CLASSPATH命令行参数-classpath或-cp。

云山雾村

c++ qsort 与sort 对结构体排序实例代码

#include<bits> using namespace std; typedef struct { string book; int num; }Book; //qsort的比较函数 int cmp(const void * a, const void * b) { return (*(Book*)a).num > (*(Book*)b).num ? 1 : 0; } //sort的比较函数 bool cmp_(Book a, Book b) { return a.num > b.num; } int main() { Book Bok[3] = { {1

weixin_38635449

C++中的Qsort

C++ 中的2个重要的STL函数,方便快捷

u011022447

sort()与qsort()排序详解[源码]

本文详细介绍了C语言中的qsort()函数和C++中的sort()函数的使用方法及其区别。qsort()是C标准库中的快速排序函数,适用于任何数据类型,但需要用户提供比较函数,且为非稳定排序。sort()是C++标准库中的排序函数,主要用于容器元素排序,支持自动调用和自定义调用,通常为稳定排序。文章通过代码示例展示了两种函数在整形、字符、浮点、字符串及结构体等多级排序中的应用,并对比了它们的优缺点,包括通用性、效率、稳定性和易用性等方面的差异。

stem5
评论 40
收藏 已收藏
分享
返回顶部
chinesefox0426
C++ 语言 65,214 成员 250,514 内容