字符串匹配——BM算法
2015-05-06 13:54
176 查看
BM算法通过Java语言实现。
运行结果:
c==c
c==c
a==a
c==c
b==b
a==a
匹配成功!
655247
public class BFMatching { public static void main(String[] args) { long startTime; long endTime; long durationTime; startTime = System.nanoTime(); BM(); endTime = System.nanoTime(); durationTime = endTime - startTime; System.out.println(durationTime); } public static void BM() { String BM_S = "ababcabcacbab"; String BM_T = "abcac"; int BMSLength = BM_S.length(); //主串长度 int BMTLength = BM_T.length(); //子串长度 int i = BMTLength - 1; while (i <= BMSLength) { for (int j = BMTLength - 1; j >= 0; ) { if (BM_T.charAt(j) == BM_S.charAt(i)) { System.out.println(BM_T.charAt(j) + "==" + BM_S.charAt(i)); if (j == 0) { System.out.println("匹配成功!"); return; } j--; i--; } else if (BM_T.charAt(j) != BM_S.charAt(i)) { i = i + Dist(BM_S.charAt(i)); j = BMTLength - 1; } } } } public static int Dist(char c) { int dist = 0; if (c == 'a') { dist = 1; } else if (c == 'b') { dist = 3; } else if (c == 'c') { dist = 5; } return dist; } }
运行结果:
c==c
c==c
a==a
c==c
b==b
a==a
匹配成功!
655247
相关文章推荐
- 字符串匹配的BM算法讲解(不含代码)
- 分享一下字符串匹配BM算法学习心得。
- [算法]字符串匹配算法之BM算法,C语言实现
- 字符串匹配-BM算法
- 使用bm算法进行字符串匹配的例子.
- 字符串匹配之horspool算法(简化的BM算法)
- 字符串匹配之BM算法
- 字符串匹配的Boyer-Moore算法 BM算法详解
- 字符串匹配--BM算法的改进的算法 Sunday Algorithm
- 字符串匹配算法:KMP算法与BM算法比较
- 字符串匹配的Sunday算法--性能上超过KMP和BM算法
- 字符串匹配的Boyer-Moore算法 BM算法详解
- 字符串匹配之BM算法
- 字符串匹配算法——BM算法
- 字符串匹配的Sunday算法--性能上超过KMP和BM算法
- 每天写一点代码----字符串匹配算法 2 (BM算法)
- 算法——字符串匹配之BM算法
- 精确字符串匹配(BM算法) [转]
- hrbustoj 1551:基础数据结构——字符串2 病毒II(字符串匹配,BM算法练习)
- 字符串匹配-BM算法改进SUNDAY--Boyer-Moore-Horspool-Sunday Aglorithm