字符串匹配——Brute-Force 简单匹配算法
来源:互联网 发布:时间轴页面源码 编辑:程序博客网 时间:2024/05/16 17:41
下面几篇文章记录字符串匹配算法。
Brute-Force算法简称BF算法,中文名叫简单匹配算法。正如其名,简单粗暴,按部就班地遍历所有字符,算法简单,效率低下,不被看好。
但也正因为不常用,反而容易生疏了,因此以此文熟悉一下这一简单的算法。
算法思想:对于源串source和模式串pattern,从source的第1个字符开始和pattern匹配;如果遇到不相同字符,则从source的第2个字符开始,重新和pattern匹配;如此循环,直至在source中遇到可以完全匹配pattern的序列,或者source遍历到尾部。
效率分析:假设source的长度为n,pattern的长度为m,不难看出,最坏情况下,对于source的每个字符,都要遍历一遍pattern,因此时间复杂度为O(n*m)。
代码实现:下面是BF算法的C语言实现
int BruteForce(char *source, char *pattern){int i, j;int m, n;if (source == NULL || pattern == NULL){return -1;}m = strlen(pattern);n = strlen(source);if (m == 0){return -1;}for (i = 0; i <= n - m; ++i){j = 0;while (j < m && source[i + j] == pattern[j]){++j;}if (j == m){return i;}}return -1;}
0 0
- 字符串匹配——Brute-Force 简单匹配算法
- 数据结构字符串匹配——Brute-Force算法
- 字符串匹配算法之Brute force algorithm
- 字符串匹配算法---Brute force、KMP、Sunday
- 字符串匹配算法(Brute-Force)
- 字符串匹配——朴素算法Brute-Force(布鲁特-福斯算法)
- 串的模式匹配——Brute-Force算法
- 时序分析:串匹配—Brute-Force算法
- Brute-Force模式匹配算法
- 字符串匹配算法SMA 总结之一:Brute force
- 字符串模式匹配 BF(Brute Force)算法
- 字符串模式匹配之Brute force、KMP、Horspool算法
- Java 串匹配Brute-Force算法
- 串匹配-朴素(brute force)算法
- 模式匹配算法之brute force
- 图像匹配之brute-force算法
- 串算法 - 蛮力匹配 Brute Force
- 串的模式匹配算法1——Brute-Force(BF)算法
- SAS学习笔记之输出到Excel
- CentOs 6.3_64静默安装oracle11g_r2
- 多进程间通信之信号中断处理
- Android编译后的目录结构
- 二叉树中两个节点的最近公共父节点
- 字符串匹配——Brute-Force 简单匹配算法
- POJ 3253 Fence Repair(经典贪心问题)
- LeetCode—二叉树遍历的情况
- c#接口
- 变换管线
- Java中的选择结构
- Android Activity 常用功能设置(全屏、横竖屏等)
- Miller__Rabin素数测试
- Qt中 QString 和int, char等的“相互”转换