文字檔案單詞的檢索與計數

2021-10-21 15:14:26 字數 750 閱讀 3230

建立乙個文字檔案,統計給定單詞在文字檔案**現的總次數及位置;

就是遍歷主串,然後把待匹配字串與子串進行比對,先把待匹配子串的第乙個字母與主串進行匹配,若匹配成功,則兩串的座標依次 ++,匹配不成功時,主串座標返回到開始匹配時的座標,待匹配串座標清零,若待匹配座標等於待匹配子串長度,則證明匹配成功, 返回匹配完畢主串的第乙個座標,否則返回-1

假設主串的長度為n,待匹配串的長度為m,因為需要遍歷主串,每次匹配的長度都小於等於m,所以它的時間複雜度是o(m*n)。

kmp演算法是一種改進的字串匹配演算法,由d.e.knuth,j.h.morris和v.r.pratt提出的。kmp演算法的核心是利用匹配失敗後的資訊,儘量減少模式串與主串的匹配次數以達到快速匹配的目的。具體實現就是通過乙個next()函式實現,函式本身包含了模式串的區域性匹配資訊。kmp演算法的時間複雜度o(m+n) [1] 。

下面展示一下kmp演算法具體應用:

public

void

kmp(string target)

else}if

(j == p.length)}if

(count==0)

long endtime=system.

currenttimemillis()

;//獲取結束時間

system.out.

println(+

(endtime-starttime)

+"ms");

} ```

文字檔案單詞的檢索與計數

建立乙個文字檔案,統計給定單詞在文字檔案 現的總次數及位置。文字檔案中每個單詞不包含空格且不跨行,單詞由字串行構成且區分大小寫,統計給定單詞在文字檔案 現的總次數,檢索輸出的某個單詞出現在文字中的行號 在該行 現的位置。設計資料量大的文字,進行子串的查詢處理,分析演算法執行的時間效率,對所有輸出的匹...

文字檔案單詞的檢索與計數預習

實驗任務 建立乙個文字檔案,統計給定單詞在文字檔案 現的總次數及位置 實現要求 文字檔案中每個單詞不包含空格且不跨行,單詞由字串行構成且區分大小寫,統計給定單詞在文字檔案 現的總次數,檢索輸出的某個單詞出現在文字中的行號 在該行 現的位置。設計資料量大的文字,進行子串的查詢處理,分析演算法執行的時間...

文字檔案單詞的檢索及計數

要求程式設計建立乙個文字檔案,每個單詞不包括空格及跨行,單詞由字串行構成且區分大小寫,完成以下功能 統計給定單詞在文字檔案 現的總次數 檢索輸出某單詞在文字檔案中首次出現的行號及位置。如下 include include include void creatfile file fp void sea...