字符串搜索算法

✍ dations ◷ 2025-12-05 03:00:47 #字符串匹配算法

字符串搜索算法(String searching algorithms)又称字符串比对算法(string matching algorithms)是一种搜索算法,是字符串算法中的一类,用以试图在一长字符串或文章中,找出其是否包含某一个或多个字符串,以及其位置。

最直观的解法是比对,如下例中,在字符串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 != needle) break;        if (j == nlen - 1) found = 1;    };};return found;

上例中,若字符串needle存在于字符串haystack中,则传回1,否则传回0。

但是此直观算法的复杂度为 O(mn),其中haystack的长度为n、needle的长度为m,所以另有更快速的算法。

令 为模式的长度, 为要搜索的字符串长度, 为字母表长度。

相关

  • Taq聚合酶结构 / ECOD结构 / ECODTaq聚合酶是由钱嘉韵于1976年从嗜热细菌海栖热袍菌(Thermus aquaticus)中分离出的DNA聚合酶。Taq聚合酶的常用简称有Taq Pol(或Taq酶)。Taq酶常用于放大
  • 诺贝尔生理医学奖诺贝尔生理学或医学奖(瑞典语:Nobelpriset i fysiologi eller medicin),通常合称诺贝尔生理医学奖,由诺贝尔基金会管理,该奖项每年颁发一次,用于表彰在生理学或医学领域作出重要发
  • 大麻籽油大麻籽油(英语:hempseed oil),又称火麻油(Hemp oil),是以火麻仁为原料制成的食用油。大麻籽油一般是以冷榨法制成,富含多种营养成分,呈现清澈的淡绿色或暗绿色。经过精制后的大麻籽油
  • 亚特兰提斯号航天飞机亚特兰蒂斯号航天飞机(STS Atlantis OV-104)是美国国家航空航天局(NASA)肯尼迪航天中心(KSC)旗下,第四架实际执行太空飞行任务的航天飞机。它与发现号是姊妹机,属于NASA第二批制造的
  • 美国行政区划美国行政区划架构为:美国第一级行政区划为州,正确的来说,州并不是国家下设的区划,因此各州不是透过行政区划划分出来的,州本身就是一个国家,而美国是由这些州联合组成的主权国家。
  • M胆碱受体蕈毒碱型乙酰胆碱受器是一大类固定在细胞膜上的乙酰胆碱受器,其对蕈毒碱比对烟碱(尼古丁)更为敏感。反过来对烟碱比较敏感的则称为烟碱型乙酰胆碱受器。蕈毒碱与烟碱两者皆为生
  • 瑞金瑞金市是位于中华人民共和国江西省东南部的一个县级市,现为省直管县。东汉建安七年(202年),置象湖镇,属雩都县。唐朝天佑元年(904年)析雩都县置瑞金监,因“掘地得金,金为瑞”得名。据
  • 污垢音乐Grime(又称: 车库饶舌)是从公元2000年初在东伦敦出现的一种音乐类型。它是由早期的英国电子音乐风格发展起来,包括UK Garage和丛林舞曲,同时也受到牙买加Dancehall、Ragga和嘻哈
  • 农民联盟农民联盟可以指:
  • 衰变产物在原子核物理学中,衰变产物(也称至子同位素)是一个元素经过辐射衰变后剩下来的核素。辐射衰变通常涉及很多过程(衰变链)。例如,铀238(U-238)衰变至钍234(Th-234),钍234(Th-234)