• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于散列函數(shù)的模式匹配算法

    2015-07-27 08:18:10周慶勛青島廣播電視大學技術(shù)裝備處山東青島266012
    山東工業(yè)技術(shù) 2015年21期
    關(guān)鍵詞:模式匹配字符串復雜度

    周慶勛(青島廣播電視大學、技術(shù)裝備處,山東 青島 266012)

    基于散列函數(shù)的模式匹配算法

    周慶勛
    (青島廣播電視大學、技術(shù)裝備處,山東 青島 266012)

    本文簡要介紹了利用散列函數(shù)進行模式匹配的原理,散列函數(shù)的構(gòu)造,給出了基于散列函數(shù)的模式匹配算法。

    散列函數(shù);模式匹配;算法

    0 引言

    模式匹配是數(shù)據(jù)結(jié)構(gòu)中字符串的一種基本運算,給定一個子串,要求在某個字符串中找出與該子串相同的所有子串,這就是模式匹配。

    假設(shè)P是給定的子串,T是待查找的字符串,要求從T中找出與P相同的所有子串,這個問題成為模式匹配問題。P稱為模式,T稱為目標。如果T中存在一個或多個模式為P的子串,就給出該子串在T中的位置,稱為匹配成功;否則匹配失敗。

    模式匹配算法是文本處理領(lǐng)域中比較重要的算法,一個簡單、高效率的模式匹配算法對提高和模式匹配有關(guān)的軟件的效率有很大幫助,本文介紹一種基于散列函數(shù)的模式匹配算法,該算法簡單,易于理解且具有較高的效率。

    1 原理

    令模式記為x=x[0..m-1],長度為m,文本串記為y=y[0..n-1],長度為n。令算列函數(shù):hash(x[0..m-1]=x[0]*2m-1+x[1]*2m-2+…+x[m-1]) mod q(式中q為系統(tǒng)最大整型值)

    該散列函數(shù)具有以下特點:

    1.1 易于計算

    1.2 易于從hash(y[i,i+m-1])計算hash(y[i+1,i+m])

    hash(y[i+1,i+m])=(( hash(y[i,i+m-1])-y[i]*2m-1)*2+y[i+m]) mod q

    為提高運算速度,乘以2的操作可通過左移1位實現(xiàn),對于給定的模式x,2m-1是一個常數(shù)。在一個模式匹配的過程中,若模式x在文本y中出現(xiàn)的位置為i,則必定hash(x)=hash(y[i,i+m-1]),但要注意,hash(x)=hash(y[i,i+m-1])時,x[0..m]和y[i,i+m-1]未必完全匹配。因此,模式匹配的過程就是hash(x)=hash(y[i,i+m-1])(其中i=0,1,…,n-m)逐個比較的過程,若hash(x)和hash(y[i,i+m-1]),則將x[0..m]和y[i,i+m-1]逐字符比較,若完全相等,則模式匹配的位置為i,否則不匹配,繼續(xù)比較hash(x)和hash(y[i+1,i+m]),直到匹配或比較結(jié)束為止。

    2 算法

    下面給出用C語言函數(shù)描述的具體算法

    3 結(jié)語

    在預(yù)期情況下該算法的時間復雜度為O(n+m),在最壞情況下,該算法的時間復雜度為O(n*m)。盡管該算法在效率上不是最好,但算法簡單,易于理解,在對時間復雜度要求不是很苛刻的環(huán)境下,還是一個簡單高效的模式匹配算法。

    [1]羅大光,郝玉潔,劉乃琦.一種非??焖俚淖址ヅ渌惴╗J].電子科技大學學報,2005,34(06):802-805.

    [2]嚴大治.字符串匹配算法比較與分析[J].計算機光盤軟件與應(yīng)用,2013(02):138-140.

    [3]嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學出版社,1996:79-80.

    10.16640/j.cnki.37-1222/t.2015.21.196

    猜你喜歡
    模式匹配字符串復雜度
    基于模式匹配的計算機網(wǎng)絡(luò)入侵防御系統(tǒng)
    電子制作(2019年13期)2020-01-14 03:15:32
    一種低復雜度的慣性/GNSS矢量深組合方法
    具有間隙約束的模式匹配的研究進展
    移動信息(2018年1期)2018-12-28 18:22:52
    OIP-IOS運作與定價模式匹配的因素、機理、機制問題
    求圖上廣探樹的時間復雜度
    某雷達導51 頭中心控制軟件圈復雜度分析與改進
    出口技術(shù)復雜度研究回顧與評述
    一種新的基于對稱性的字符串相似性處理算法
    依據(jù)字符串匹配的中文分詞模型研究
    一種針對Java中字符串的內(nèi)存管理方案
    广灵县| 临沭县| 水城县| 平定县| 香格里拉县| 铁力市| 吉隆县| 镇安县| 崇信县| 舒城县| 阳江市| 韩城市| 林芝县| 新邵县| 定西市| 兰州市| 蓬安县| 石首市| 阿拉善左旗| 牡丹江市| 虎林市| 抚顺市| 凤台县| 法库县| 张家港市| 建瓯市| 博白县| 文水县| 庆阳市| 临安市| 麦盖提县| 德州市| 定远县| 石泉县| 新营市| 湘潭市| 尉氏县| 静安区| 苍梧县| 罗源县| 甘洛县|