關鍵字匹配之BF演算法 python實現

2021-06-15 07:02:01 字數 761 閱讀 8272

#!/usr/bin/python

# -*- coding: utf-8

# filename bf

import time

""""""

t="為什麼叫向量空間模型呢?其實我們可以把每個詞給看成乙個維度,而詞的頻率看成其值(有向),即向量,這樣每篇文章的詞及其頻率就構成了乙個i維空間圖,兩個文件的相似度就是兩個空間圖的接近度。假設文章只有兩維的話,那麼空間圖就可以畫在乙個平面直角座標系當中,讀者可以假想兩篇只有兩個詞的文章畫圖進行理解。"

p="讀者"

i=0count=0

start=time.time()

while (i <=len(t)-len(p)):

j=0while (t[i]==p[j]):

i=i+1

j=j+1

if j==len(p):

break

elif (j==len(p)-1):

count=count+1

else:

i=i+1

j=0print count

print time.time()-start

演算法特點:整體移動方向:可認為在固定t的情況下,p從左向右滑動;匹配比較時,從p的最左邊位開始向右逐位與t串中對應位比較。p的滑動距離為1,這導致bf演算法匹配效率低(相比其他演算法,如:bm,kmp,滑動沒有跳躍)。

該演算法的時間複雜度為o(len(t)*len(p)),空間複雜度為o(len(t)+len(p))

搜尋匹配關鍵字

改變關鍵字顏色 呼叫在你的cell中 tableview cellforrow 返回單元格內容 uitableviewcell tableview uitableview tableview cellforrowatindexpath nsindexpath indexpathelse range ...

LIKE匹配關鍵字

1.匹配任意數目字元 包括零個字元 select from edo user where true name like 王 應用 關鍵字查詢 where u.true name like 2.匹配任何單個字元 select from edo user where true name like 王 應...

Linux grep 匹配多個關鍵字

grep 命令非常常用,經常用於匹配文字字元。一般情況下,grep 命令只能匹配乙個關鍵字,怎麼實現匹配多個關鍵字呢?下面看幾種情況 1 grep 字串 這是最普通的使用方式 匹配檔案中包含 manpath 的那一行 cat manpath.config grep manpath 2 grep v ...