Brute-Force算法

Brute-Force算法


Brute-Force算法简称BF算法:也称简单匹配算法,其基本思路是:从目标串s=”s0s1…sn-1”的第一个字符开始和模式串t=”t0t1…tm-1”中的第一个字符比较,若相等,则继续逐个比较后续字符,否则,从目标串s的第2个字符开始重新与模式串t的第一个字符进行比较,依次类推,若从模式串s的第i个字符开始,每个字符依次和目标串t中的对应字符相等,则匹配成功,该算法返回i;否则匹配失败,返回-1. 

Java代码  收藏代码
    1. private static int bruteforce(String source, String sub) {  
    2.         int j = 0, i = 0;  
    3.         int index = -1;  
    4.         while (i < source.length() && j < sub.length()) {  
    5.             if (source.charAt(i) == sub.charAt(j)) {  
    6.                 i++;  
    7.                 j++;  
    8.             } else {  
    9. //使i回退到下一个字符,应为子串的前面j向可能匹配成功,而第j+1项失败,所以i=i-j+1  
    10.                 i = i - j + 1;  
    11.                 j = 0;  
    12.             }  
    13.             if (j == sub.length()) {  
    14.                 index = i - sub.length();  
    15.             } else {  
    16.                 index = -1;  
    17.             }  
    18.         }  
    19.         return index;  
    20.     }  
posted @ 2015-08-02 15:57  A.ArmStrong  阅读(165)  评论(0编辑  收藏  举报