字符串搜索算法

✍ dations ◷ 2025-12-01 23:52:18 #字符串匹配算法

字符串搜索算法(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,所以另有更快速的算法。

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

相关

  • 非预期怀孕非预期怀孕(Unintended pregnancies)也称为意外怀孕、非计划怀孕或非期望怀孕,是在受孕时,女方没有预期会怀孕(或是不希望怀孕),却发生的怀孕,没有预期要怀孕的原因可能是时机不宜或
  • 蒽醌类药物蒽醌(Anthraquinone,化学式:C14H8O2),又音译作安特拉归农,是一种醌类化学物。蒽醌的复合物存在于天然,也可以人工合成。工业上,不少染料都是以蒽醌作基体;而不少有医疗功效的药用植物
  • γ-羟基丁酸γ-羟基丁酸,又称4-羟基丁酸,(gamma-Hydroxybutyric acid,GHB),是一种在中枢神经系统中发现的天然物质,亦存在于葡萄酒、牛肉、柑橘属水果中,也少量存在于几乎所有动物体内。它也是
  • 督政府督政府(Directoire exécutif),是法国大革命中于1795年11月2日至1799年10月25日期间掌握法国最高政权的政府,前承国民公会,后启执政府。1795年8月,热月党控制的国民公会颁布了新的
  • 李启虎李启虎(1939年-),浙江省温州市人。水声信号处理和声呐设计专家,长期从事信号处理理论和声纳设计、研制工作。1985年撰写的《声纳信号处理引论》为中国声纳领域的第一本专著,1997年
  • 瑶族瑶族(或称为徭族、傜族、猺族),是亚洲的一个民族,其历史比较悠久。有研究认为:瑶族起源于古代东夷部落,与九黎族关系密切,尊奉先祖蚩尤、盘瓠。中国的瑶族人口为285.3万(2010年),62.1%
  • 地球 (消歧义)地球(Earth),是太阳系从内到外的第三颗行星。除此之外,地球还可以指:
  • 王冠雄王冠雄(1949年10月10日-),原名王丰,原籍浙江,祖籍东北奉天,台湾台南出生,为台湾电影演员歌手,金马奖影帝。1973年出道,1984年演艺事业正如日中天时宣布息影,短短12年拍了上百部电影,也发
  • Bureau of Justice Statistics美国司法统计局(英语:United States Bureau of Justice Statistics,简称BJS),是美国联邦政府机构,隶属于美国司法部。该局成立于1979年12月27日,负责收集、分析并发布有关美国犯罪
  • 5f14 7s2 2, 8, 18, 32, 32, 8, 2第一:641.6 kJ·mol−1 第二:1254.3 kJ·mol−1 主条目:锘的同位素 锘(Nobelium)是一种人工合成元素,符号为No,原子序为102。它是以炸药发明者