字元串搜寻算法是一种搜寻算法,目的为在一长字元串中找出其是否包含某字元串。
基本介绍
- 中文名:字元串搜寻算法
- 类型:搜寻算法
- 直观解释:最直观的解法是比对
- 如下例中:字元串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。