国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

PHP實(shí)現(xiàn)用于模式搜索的樸素算法(字符串匹配算

2020-03-24 18:55:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
給定文本txt [0..n-1]和模式pat [0..m-1],編寫(xiě)一個(gè)函數(shù)搜索(char pat [],char txt []),在txt中打印所有出現(xiàn)的pat [] []。你可以假設(shè)n m。

例子:

輸入: txt[] = THIS IS A TEST TEXT  pat[] = TEST 輸出: Pattern found at index 10輸入: txt[] = AABAACAADAABAABA  pat[] = AABA 輸出: Pattern found at index 0 Pattern found at index 9 Pattern found at index 12

0b59774503099b4ad8124769a37f4a3.png

模式(Pattern )搜索是計(jì)算機(jī)科學(xué)中的一個(gè)重要問(wèn)題。當(dāng)我們?cè)谟浭卤尽?word文件、瀏覽器數(shù)據(jù)庫(kù)中搜索字符串時(shí),使用模式搜索算法來(lái)顯示搜索結(jié)果。

樸素模式搜索:
將模式逐個(gè)滑過(guò)文本并檢查是否匹配。如果找到匹配項(xiàng),則再次滑動(dòng)1以檢查后續(xù)匹配項(xiàng)。

PHP代碼:

 ?php // 樸素模式搜索算法function search($pat, $txt)  $M = strlen($pat);  $N = strlen($txt);  for ($i = 0; $i = $N - $M; $i++)  // 對(duì)于當(dāng)前索引i,請(qǐng)檢查模式匹配 for ($j = 0; $j $j++)  if ($txt[$i + $j] != $pat[$j])  break;  // if pat[0...M-1] =  // txt[i, i+1, ...i+M-1]  if ($j == $M)  echo Pattern found at index , $i. /n  $txt = AABAACAADAABAAABAA  $pat = AABA  search($pat, $txt);

輸出:

Pattern found at index 0 Pattern found at index 9 Pattern found at index 13

什么是最好的情況?

當(dāng)Pattern模式的第一個(gè)字符根本不存在于文本中時(shí),會(huì)出現(xiàn)最佳情況。

filter_nonebrightness_4txt[] = AABCCAADDEE pat[] = FAA 

最佳情況下的比較次數(shù)為O(n)。

什么是最壞的情況?

1)當(dāng)文本和圖案的所有字符相同時(shí)。

filter_nonebrightness_4txt[] = AAAAAAAAAAAAAAAAAA pat[] = AAAAA 

2)當(dāng)最后一個(gè)字符不同時(shí),也會(huì)出現(xiàn)最壞情況。

filter_nonebrightness_4txt[] = AAAAAAAAAAAAAAAAAB pat[] = AAAAB 

最壞情況下的比較次數(shù)是O(m *(n-m + 1))。雖然具有重復(fù)字符的字符串不太可能出現(xiàn)在英文文本中,但它們很可能出現(xiàn)在其他html' target='_blank'>應(yīng)用程序中(例如,在二進(jìn)制文本中)。

相關(guān)推薦:《PHP教程》

以上就是PHP實(shí)現(xiàn)用于模式搜索的樸素算法(字符串匹配算法)的詳細(xì)內(nèi)容,PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 高密市| 永新县| 久治县| 桂平市| 遂川县| 双流县| 绵竹市| 玉门市| 威信县| 嘉定区| 九龙县| 友谊县| 锦州市| 临沧市| 嘉义市| 稷山县| 藁城市| 定兴县| 贺兰县| 澄江县| 雷山县| 淮南市| 通渭县| 南京市| 怀安县| 潮州市| 辉南县| 左云县| 衢州市| 彰化市| 张家口市| 进贤县| 洪雅县| 江永县| 四川省| 渝北区| 安溪县| 滦南县| 临沂市| 仙桃市| 宁城县|