字符串搜索匹配算法(一)
2011-11-22 20:17
253 查看
字符串搜索匹配算法常用的有3种:BF算法、KMP算法、BM算法。
BF算法:
BF(Brute Force)暴力搜索,是很容易想到的字符串匹配算法。对于要搜索的字符串T和模式P,T与P左对齐,先比较T[0]==P[0],相等的话,比较T[1]==P[1],如果全部字符都相同,则匹配成功;否则P往右移动1个字符,继续比较。时间复杂度O((n-m+1)*m)或者说O(mn)
BF算法实现
BF算法:
BF(Brute Force)暴力搜索,是很容易想到的字符串匹配算法。对于要搜索的字符串T和模式P,T与P左对齐,先比较T[0]==P[0],相等的话,比较T[1]==P[1],如果全部字符都相同,则匹配成功;否则P往右移动1个字符,继续比较。时间复杂度O((n-m+1)*m)或者说O(mn)
BF算法实现
#include <iostream> #include "conio.h" #define TNUM 20 #define PNUM 5 using namespace std; int main(){ char T[TNUM]; char P[PNUM]; cout<<"请输入字符串"<<endl; cin>>T; cout<<"输入模式"<<endl; cin>>P; cout<<"在 "<<T<<" 中匹配"<<P<<endl; int i = 0;//T下标 while(i<(strlen(T)-strlen(P))){ int j =0; //P下标 while(T[i++]==P[j++]&&j<strlen(P)); if(j==strlen(P)) { cout<<"T中开始下标 "; for(int k=(i-strlen(P));k<i;k++) cout<<"第"<<k<<"位置"<<T[k]<<" "; break; } } getch(); }
相关文章推荐
- 字符串搜索匹配算法学习收集(tire树/自动机/kmp/Boyer-moore)
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法) 之算法前传II
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法)——TTMP算法 之理论如此
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法)——TTMP算法 之理论(转)
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法)——TTMP算法 之理论如此
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法) 之算法前传II
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法)——TTMP算法 之理论如此
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法) 之算法前传
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法)——TTMP算法 之B模式概述
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法) 之算法前传
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法)——TTMP算法 之B模式概述
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法)——TTMP算法 之B模式概述
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法) 之算法前传II
- 字符串关键字搜索匹配提取处理算法
- 字符串模式匹配算法(字符串搜索)
- 字符串朴素匹配算法
- 基于STL的字符串最大长度匹配算法
- java 算法实现字符串的匹配
- 字符串多模式精确匹配(脏字/敏感词汇/关键字过滤算法)——TTMP算法 之实战F模式
- 字符串匹配算法 之 基于DFA(确定性有限自动机)的字符串模式匹配算法