Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String.contains()的时间复杂性_String_Algorithm_Time Complexity - Fatal编程技术网

String.contains()的时间复杂性

String.contains()的时间复杂性,string,algorithm,time-complexity,String,Algorithm,Time Complexity,String.contains()的时间复杂度是多少; 假设n是与另一个长度为k的字符串进行比较的字符串的长度。如果不知道您感兴趣的字符串的实际实现,则没有答案;或者你打算使用什么算法 一个完全幼稚的实现可能需要进行(n+1-k)*k比较,以确定给定长度n的字符串不包含长度k的特定子字符串。对于最坏的情况,这就是O(nk) 即使在第一次不相等比较之后停止子字符串比较,虽然系数较小,但仍然是O(nk)。构造一个字符串,它是许多孤立字母的重复,每个字母之间用k-1空格隔开,然后搜索该字符串中出现的k

String.contains()的时间复杂度是多少;
假设n是与另一个长度为k的字符串进行比较的字符串的长度。

如果不知道您感兴趣的字符串的实际实现,则没有答案;或者你打算使用什么算法

一个完全幼稚的实现可能需要进行
(n+1-k)*k
比较,以确定给定长度
n
的字符串不包含长度
k
的特定子字符串。对于最坏的情况,这就是O(nk)

即使在第一次不相等比较之后停止子字符串比较,虽然系数较小,但仍然是
O(nk)
。构造一个字符串,它是许多孤立字母的重复,每个字母之间用
k-1
空格隔开,然后搜索该字符串中出现的k个连续空格。搜索将失败,但每个子字符串比较都将进行摊销
k/2
比较才能找到答案,而您仍然处于
O(nk)

如果已知
k
远小于
n
,则可以将其视为
O(n)


平均大小写取决于实际使用的算法,也取决于两个字符串中字符的分布;您还没有说这两个是什么。

如果不知道您感兴趣的字符串.contains()的实际实现,就没有答案;或者你打算使用什么算法

一个完全幼稚的实现可能需要进行
(n+1-k)*k
比较,以确定给定长度
n
的字符串不包含长度
k
的特定子字符串。对于最坏的情况,这就是O(nk)

即使在第一次不相等比较之后停止子字符串比较,虽然系数较小,但仍然是
O(nk)
。构造一个字符串,它是许多孤立字母的重复,每个字母之间用
k-1
空格隔开,然后搜索该字符串中出现的k个连续空格。搜索将失败,但每个子字符串比较都将进行摊销
k/2
比较才能找到答案,而您仍然处于
O(nk)

如果已知
k
远小于
n
,则可以将其视为
O(n)

平均大小写取决于实际使用的算法,也取决于两个字符串中字符的分布;您还没有说明这两个选项是什么。

没有具体说明。一个简单的实现应该是
O(n*k)
,但是有更快的算法,Javadoc中没有说明使用哪种算法,也没有指定。一个简单的实现应该是
O(n*k)
,但是有更快的算法,Javadoc中没有说明使用哪种算法,