string.h中strncmp的复杂性
我想知道C库(string.h中strncmp的复杂性,c,string,time-complexity,strncmp,C,String,Time Complexity,Strncmp,我想知道C库(string.h)中的int-strncmp(const-char*\uuu-s1,const-char*\uu-s2,size\u-t\uu-n)的时间复杂度 我必须研究我的整个程序的复杂性,它需要调用数千次strncmp,我不能忽视这个复杂性。 在哪里可以找到有关c库函数复杂性的文档?该标准对复杂性没有任何要求。这完全取决于执行情况。但是绝对没有理由期望它是除了O(\uu\n) 编写一个满足O(\uu n)的实现是很简单的,因此没有理由怀疑由专业人员实现的真正实现更糟糕 编
string.h)
中的int-strncmp(const-char*\uuu-s1,const-char*\uu-s2,size\u-t\uu-n)的时间复杂度
我必须研究我的整个程序的复杂性,它需要调用数千次strncmp,我不能忽视这个复杂性。
在哪里可以找到有关c库函数复杂性的文档?该标准对复杂性没有任何要求。这完全取决于执行情况。但是绝对没有理由期望它是除了O(\uu\n)
- 编写一个满足
O(\uu n)
的实现是很简单的,因此没有理由怀疑由专业人员实现的真正实现更糟糕
- 编写一个比
O(\uu\n)
更好的实现是不可能的,所以这不会发生
但是,如果你想确定,你必须研究你正在使用的特定实现。你可以考虑一个字符后一个字符比较的线性操作,自己得出答案。字符比较中strcmp的时间复杂度是O(k)
其中k
是公共前缀的长度,最大为n,和k