2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、KMP字符串模式匹配算法詳解2009090419:28個(gè)人覺(jué)得這篇文章是網(wǎng)上的介紹有關(guān)KMP算法更讓人容易理解的文章了,確實(shí)說(shuō)得很“詳細(xì)”,耐心地把它看完肯定會(huì)有所收獲的~~,另外有關(guān)模式函數(shù)值next[i]確實(shí)有很多版本啊,在另外一些面向?qū)ο蟮乃惴枋鰰?shū)中也有失效函數(shù)f(j)的說(shuō)法,其實(shí)是一個(gè)意思,即next[j]=f(j1)1,不過(guò)還是next[j]這種表示法好理解啊:KMPKMP字符串模式字符串模式匹配詳解匹配詳解KMP字符串模式

2、匹配通俗點(diǎn)說(shuō)就是一種在一個(gè)字符串中定位另一個(gè)串的高效算法。簡(jiǎn)單匹配算法的時(shí)間復(fù)雜度為O(mn)KMP匹配算法??梢宰C明它的時(shí)間復(fù)雜度為O(mn).。一.簡(jiǎn)單匹配算法簡(jiǎn)單匹配算法先來(lái)看一個(gè)簡(jiǎn)單匹配算法的函數(shù):intIndex_BF(S[]T[]intpos)若串S中從第pos(S的下標(biāo)0≤posStrLength(S))個(gè)字符起存在和串T相同的子串,則稱匹配成功,返回第一個(gè)這樣的子串在串S中的下標(biāo),否則返回1inti=posj=0whil

3、e(S[ij]!=0繼續(xù)比較后一字符elseij=0重新開(kāi)始新的一輪匹配if(T[j]==0)returni匹配成功返回下標(biāo)elsereturn1串S中(第pos個(gè)字符起)不存在和串T相同的子串Index_BF此算法的思想是直截了當(dāng)?shù)模簩⒅鞔甋中某個(gè)位置i起始的子串和模式串T又一次發(fā)生了失配,所以T下標(biāo)又回溯到開(kāi)始,S下標(biāo)增1然后再次比較。這次T中的所有字符都和S中相應(yīng)的字符匹配了。函數(shù)返回T在S中的起始下標(biāo)3。如圖:二.KMPKMP匹

4、配算法匹配算法還是相同的例子,在S=”abcabcabdabba”中查找T=”abcabd”,如果使用KMP匹配算法,當(dāng)?shù)谝淮嗡阉鞯絊[5]和T[5]不等后,S下標(biāo)不是回溯到1,T下標(biāo)也不是回溯到開(kāi)始,而是根據(jù)T中T[5]==’d’的模式函數(shù)值(next[5]=2,為什么?后面講),直接比較S[5]和T[2]是否相等,因?yàn)橄嗟龋琒和T的下標(biāo)同時(shí)增加因?yàn)橛窒嗟?,S和T的下標(biāo)又同時(shí)增加。。。最終在S中找到了T。如圖:KMP匹配算法和簡(jiǎn)單匹配

5、算法效率比較,一個(gè)極端的例子是:在S=“AAAAAA…AAB“(100個(gè)A)中查找T=”AAAAAAAAAB”簡(jiǎn)單匹配算法每次都是比較到T的結(jié)尾,發(fā)現(xiàn)字符不同,然后T的下標(biāo)回溯到開(kāi)始,S的下標(biāo)也要回溯相同長(zhǎng)度后增1,繼續(xù)比較。如果使用KMP匹配算法,就不必回溯.對(duì)于一般文稿中串的匹配,簡(jiǎn)單匹配算法的時(shí)間復(fù)雜度可降為O(mn),因此在多數(shù)的實(shí)際應(yīng)用場(chǎng)合下被應(yīng)用。KMP算法的核心思想是利用已經(jīng)得到的部分匹配信息來(lái)進(jìn)行后面的匹配過(guò)程??辞懊娴?/p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論