首页 > 编程知识 正文

BF算法流程图,BF算法的特点

时间:2023-05-03 10:21:10 阅读:140057 作者:1200

包界面;/* * createbyliuzhiweion 2020/4/6 *字符串匹配indexof返回字符串的第一个出现位置*/public class Huawei 02 _ BF {/* * * BF算法:一种相当强大的算法*使目标字符串s的第一个字符与模式字符串t的第一个字符一致,在相等的情况下,继续比较s的第二个字符和t的第二个字符; *如果不相等,则将s的第二个字符与t的第一个字符进行比较,然后依次进行比较,直到获得最后的匹配结果。 *p*Time:o(mn ) m可以实现主字符串的长度n为部分字符串的长度) p )以上的算法充分要求的功能,而且在字符重复概率较低的情况下,时间复杂度也不是很大,一般为o ) Mn )。 *但是,如果出现以下情况,时间就会变得很复杂: 例如,子字符串为“111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 *子字符串的前8个字符都是“1”,因此主字符串前面的所有大写字母也是1。 这样,各循环变为部分文字*因此,该算法最坏情况下的时间复杂度为o(m*n ),另外,该算法的空间复杂度为o(1) p,是KMP算法((* @ papan ) ) int i=0; int j=0; while(Ilengthajlengthb )//如果当前字符相同,则为if(str.charat(I )==sub.charAt(j ) ) I; j; (else(//回到当前失败的开始下一个I必须追溯。 这是BF算法效率低下的原因i=i - j 1; //j也要追溯到0 j=0; (//j到达末尾时,匹配成功的if(j==lengthb ) { return i - j; } else { return -1; } publicstaticvoidmain (string [ ] args ) intindex=find ),) bc ); system.out.println(index; }下篇KMP

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。