字符串搜索算法

✍ dations ◷ 2025-12-01 15:39:54 #字符串匹配算法

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

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

相关

  • 可可脂可可脂(cocoa butter),也称作“可可油”,是在制作巧克力和可可粉的过程中自可可豆榨取的天然植物性可食用油脂,它占可可豆50-57%的重量,并赋予了巧克力独特的入口即化口感。可可脂
  • 太空飞行器航天器又名太空载具、航天器或航天器,是在地球大气层以外的宇宙空间中,基本按照天体力学的规律运动的各种飞行器。航天器与自然天体的不同之处在于其可以受控改变其运行轨道或
  • 杨耀东杨耀东,金韵奖歌手,妻子为崔爱莲(崔苔菁之妹,1958-2001.10.3,因气喘离世)。
  • 亨德森阿瑟·亨德森(Arthur Henderson,1863年9月13日-1935年10月20日),英国铁模具制造商、工党政治家,1934年诺贝尔和平奖得主。此外,他曾在1908年至1910年、1914年至1917年与1931年至193
  • 砷元素3d104s24p32, 8, 18, 5蒸气压第一:947.0 kJ·mol−1 第二:1798 kJ·mol−1 第三:2735 kJ·mol−1 (主条目:砷的同位素砷(Arsenic),化学元素符号为As,原子序数为33。砷分布在多种
  • 磷酸二氢铵磷酸二氢铵又称磷酸一铵,是一种白色的晶体,分子式为NH4H2PO4,可溶于水,微溶于乙醇。加热会分解成偏磷酸铵(NH4PO3),可用氨水和磷酸反应制成,主要用于制造肥料及灭火器。www.chemyq(中
  • 华纳音乐集团华纳音乐集团(英文:Warner Music Group)是美国的一家总部位于纽约市唱片公司。华纳音乐集团是全球第三大唱片公司,也是全球三大唱片公司之一,亦是全球最大的美国独资音乐集团。时
  • 肋蜷科肋蜷科(学名:Pleuroceridae),又名黑贝科,是腹足纲蟹守螺超科之下的一个科,包括有150多个物种,主要是小型到中型的淡水螺,有鳃和口盖,而且一般来说其物种的螺壳的螺层都很多。本科物种
  • 凤城市凤城市是中华人民共和国辽宁省丹东市代管的一个县级市,位于辽宁省东部,为中国第一个由少数民族自治县撤县建市并保留民族自治地方的待遇和各项优惠民族政策的城市。公元前128
  • 弗兰茨·迈恩弗兰茨·尤利乌斯·费迪南德·迈恩(Franz Julius Ferdinand Meyen,1804年6月28日-1840年9月2日)是一位德国医师、植物学家与鸟类学家。出生于东普鲁士蒂尔西特(Tilsit,现在的苏维