字符串搜索算法

✍ dations ◷ 2025-11-13 21:23:03 #字符串匹配算法

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

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

相关

  • 炝是中国菜的一种烹调方法,主要用于凉菜。炝是将切好的原料用沸水焯或温油(称为油炝)稍微加热断生,然后加入调料以及温热的花椒油拌制。一般不使用醋和酱油。有些广义的炝菜不用
  • 徽章国徽即代表国家的徽章、纹章,为国家象征之一。国徽上通常有来自大自然的元素,如动植物,但也可能有其他事物,用以表现该国的风土人情、历史文化或意识形态。世上大多数国家的国徽
  • 相对论性质量质量这一名词在狭义相对论中通常是指物质在静止时所测量的质量(静质量)。这个意义的质量与牛顿力学的质量相同。不变质量是静质量的另一名称,但它通常是指由许多粒子构成的系统
  • 沃尔特·阿尔瓦雷茨沃尔特·阿尔瓦雷茨(Walter Alvarez,1940年10月3日-)是一位美国地质学家,诺贝尔物理学奖得主路易斯·阿尔瓦雷茨之子。任教于伯克利加州大学地球与行星科学系。因为与其父共同提
  • 约瑟夫·普鲁斯特约瑟夫·路易·普鲁斯特(法语:Joseph Louis Proust,1754年9月26日-1826年7月5日)或译普劳斯特,法国化学家,其最大贡献是确立了定比定律。约瑟夫·普鲁斯特于1754年9月26日生于法国
  • 时分多路复用时分多路复用(Time-Division Multiplexing,TDM)是一种数字或者模拟(较罕见)的多路复用技术。使用这种技术,两个以上的信号或数据流可以同时在一条通信线路上传输,其表现为同一通信
  • 体育画报体育画报(Sports Illustrated)是由Authentic Brands所拥有的美国体育周刊。拥有超过300万的订户,每个礼拜2300万成人的阅读量,在美国包括超过1300万、19%的男性。是第一个获得美
  • 香部香部,为汉字索引中的部首之一,康熙字典214个部首中的第一百八十六个(九划的则为第十一个)。就繁体和简体中文中,香部归于九划部首。香部只以左方、下方为部字。且无其他部首可用
  • 亚砷酸亚砷酸是一种无机化合物,化学式为H3AsO3。它可由三氧化二砷溶于水制得,只能存在于水溶液中,还没有分离出纯酸,但这并不影响它的结构为As(OH)3。亚砷酸为三角锥形的分子结构,有三
  • 沙特雷剧院沙特雷剧院(法语:Théâtre du Châtelet)是位于法国首都巴黎第1区的一个剧院,有2500个座位。沙特雷剧院开始建设于1860年,在1862年竣工。