蛮力法在字符串匹配问题中的应用(JAVA)--朴素模式匹配算法
生活随笔
收集整理的這篇文章主要介紹了
蛮力法在字符串匹配问题中的应用(JAVA)--朴素模式匹配算法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
蠻力法在字符串匹配問(wèn)題中的應(yīng)用
字符串匹配問(wèn)題通常是給定一個(gè)n個(gè)字符組成的串(稱為文本),一個(gè)m(m<=n)個(gè)字符的串(稱為模式),從文本中尋找匹配模式的子串。顯然我們需要逐個(gè)匹配,這是蠻力算法的典型特點(diǎn)。
蠻力匹配:時(shí)間復(fù)雜度O(n^2)
public class Main {public static void main(String[] args) {String[] a = {"a","b","c","d","e","f","g","h"};String[] b = {"e","f"};int flag = 0;for (int i = 0; i < a.length-b.length; i++) {int j = 0;while (j < b.length && b[j] == a[i+j]) {j = j+1;if (j == b.length-1) {flag = 1;System.out.println(i);}}}if (flag == 0) {System.out.println("no find");}} } 發(fā)現(xiàn)問(wèn)題:這樣的蠻力方法對(duì)于文本中的每個(gè)字母都會(huì)進(jìn)行匹配,而這無(wú)疑增加了許多冗余的比較
優(yōu)化思路:KMP算法
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的蛮力法在字符串匹配问题中的应用(JAVA)--朴素模式匹配算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Ambari删除服务报错之CSRF pr
- 下一篇: 吴钩:打开宋代的“隐藏玩法”