字符串搜索算法

✍ dations ◷ 2025-11-19 05:24:01 #字符串匹配算法

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

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

相关

  • 抗生素滥用抗生素滥用(或称抗生素误用、过度使用抗生素),是指对公共健康造成严重影响的抗生素滥用或过度使用。对抗生素产生抗药性的细菌正在成为日益严重的威胁,并且变得越来越普遍。这种
  • 旺多姆广场旺多姆广场(法语:Place Vendôme)位于法国巴黎第一区,杜伊勒里宫以北,马德莱娜教堂以东。是和平街 (巴黎)的起点。广场中央的旺多姆广场柱由拿破仑·波拿巴下令建造,以纪念奥斯特
  • 内酰胺内酰胺(Lactam)即环状的酰胺,命名时用希腊字母表示环的元数:β-内酰胺(四元环)、γ-内酰胺(五元环)、δ-内酰胺(六元环)等。在中性PH下,碱基主要以内酰胺形式存在内酰胺可通过多种方法
  • 皇家山大学皇家山大学(Mount Royal University)是在加拿大艾伯塔省卡尔加里的一所公立大学,简称MRU,它的前身为皇家山学院,于1910年创校,而在2009年9月3日正式升格为大学。皇家山大学,的前
  • span class=nowrapReOsub3/subNOsub3/sub/span&硝酸三氧铼是一种无机化合物,化学式为ReO3NO3。硝酸三氧铼可由氯化三氧铼和五氧化二氮反应得到:七氧化二铼和五氧化二氮的硝基甲烷饱和溶液反应,也能得到硝酸三氧铼。
  • 女王女王(英语:Queen regnant),即女性的君主或国王。汉语中“王”、“国王”一词无性别之分,男女皆称“王”、“国王”,女王仅在需要强调其女性身份时才使用。西方语言有性别之分,君主
  • 生物传感器生物传感器(英语:Biosensor)是利用生物要素与物理化学检测要素组合在一起对被分析物进行检测的装置。生物传感器包括三个部分:其中最为大众熟知的商用生物传感器是使血糖生物传
  • 耶稣基督后期圣徒教会耶稣基督后期圣徒教会(The Church of Jesus Christ of Latter-day Saints),总部位于美国犹他州盐湖城,分支遍及世界。该教会复兴了耶稣最初建立的教会。据该教会统计,该教会拥有7
  • 马斯科吉马斯科吉县(英语:Muskogee County, Oklahoma)是美国俄克拉荷马州东部的一个县。面积2,173平方公里。根据2010年人口普查,本县共有人口70,990人。本县县治为马斯科吉(Muskogee)。本
  • 土部土部,为汉字索引里为部首之一,康熙字典214个部首中的第三十二个(三划的则为第三个)。就常用部首名称及索引,土部归于部首三划。字体主体可辨认为土或字体左侧为土字旁,且无其他部