BF算法与KMP算法(字符串匹配算法)
BF算法 BF算法,简称暴力破解 Bruce Force ,又称朴素模式的匹配算法。 可以看出BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配, 若相等,则继续比较S的第二个字符和T的第二个字符; 若不相等,则比较S的第二个字符和T的第一个字符,依次比较,直到得出最后的匹配结果。 这种算法的比较很暴力,由于产生了多次的回溯,在效率上存在很大的缺陷。 时间复杂度O(m*n) 代码: 1 package bf; 2 3 public class Test { 4 public static void main(String[] args) { 5 String bf = "IloveChinveChia"; 6 String pattern = "veChi"; 7 int m = bf.length(); // i 8 int n = pattern.length(); // j 9 int i = 0, j = 0; 10 while (i < m) { 11 if (bf.charAt(i) == pattern.charAt(j)) { // 一一匹配时 12 i++; 13 j++; 14 } else { 15 i = i - j + 1; 16 j = 0; 17 } 18 if (i == m) 19 break; 20 if (bf.charAt