字符串搜索算法是一种搜索算法,目的为在一长字符串中找出其是否包含某字符串。
字符串搜索算法是一种搜索算法,目的为在一长字符串中找出其是不否包含某字符串。
最直观的解法是比对,如下例中,在字符串haystack中找出字符串needle
char* haystack;
char* needle;
int hlen, nlen, found;int i,j,k;
found =0;
hlen =strlen(haystack);
nlen =strlen(needle);
for(i =0; i < hlen;++i)
{
for(j =0; j < nlen;++j)
{
if(haystack[i+j]!= needle[j])
break;
if(j == nlen -1)
found =1;
};
};
return found;
上例中,若字符串needle存在于字符串haystack中,则传回1,否则传回0。
但是此直观算法的复杂度为 O(mn),其中haystack的长度为n、needle的长度为m。