999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于散列函數的模式匹配算法

2015-11-04 07:40:16周慶勛
山東工業技術 2015年21期

周慶勛

摘 要:本文簡要介紹了利用散列函數進行模式匹配的原理,散列函數的構造,給出了基于散列函數的模式匹配算法。

關鍵詞:散列函數;模式匹配;算法

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

0 引言

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

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

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

1 原理

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

該散列函數具有以下特點:

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位實現,對于給定的模式x,2m-1是一個常數。在一個模式匹配的過程中,若模式x在文本y中出現的位置為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,否則不匹配,繼續比較hash(x)和hash(y[i+1,i+m]),直到匹配或比較結束為止。

2 算法

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

int HashMatching(char *x,char *y, int n, int n)

{

int hash_x,hash_y,i,k,k1;

k=1;

for (i=1;i

hash_x=0;

hash_y=0;

for (i=0;i

{

Hash_x=(hash_x<<1)+x[i];

Hash_y=(hash_y<<1)+y[i];

}

for (i=0;i<=n-m;i++)

if (hash_y==hash_x)

{

k1=0;

while (k1

if (x[k1]==y[i+k1])

k1=k1+1;

else

break;

if (k1==m) return i;

}

else

hash_y=((hash_y-y[i]*k)<<1)+y[i+m];

return -1

}

3 結語

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

參考文獻:

[1]羅大光,郝玉潔,劉乃琦.一種非常快速的字符串匹配算法[J].電子科技大學學報,2005,34(06):802-805.

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

[3]嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,1996:79-80.endprint

主站蜘蛛池模板: 99国产精品免费观看视频| 中文国产成人久久精品小说| 99久久精彩视频| 欧美成a人片在线观看| 国产福利2021最新在线观看| 国产成人综合日韩精品无码首页| 国产成人综合久久| 精品无码一区二区在线观看| 国产成人精品优优av| 日韩av高清无码一区二区三区| 就去色综合| 国产成人综合在线观看| 免费看一级毛片波多结衣| 亚洲色图狠狠干| 国产精品视频第一专区| 国产人妖视频一区在线观看| 国产无码网站在线观看| 亚洲成人在线免费| 又爽又大又光又色的午夜视频| 成人小视频在线观看免费| 国产99精品久久| 亚洲综合色在线| 午夜影院a级片| 最新国产你懂的在线网址| 成人国内精品久久久久影院| 久青草免费在线视频| 99精品在线看| 欧美福利在线播放| 性做久久久久久久免费看| 色综合热无码热国产| 亚洲人成电影在线播放| 丁香婷婷综合激情| 久久中文字幕av不卡一区二区| 波多野结衣一区二区三区四区视频 | 国产精欧美一区二区三区| 最新午夜男女福利片视频| 精品国产自| 国产小视频a在线观看| 国产在线拍偷自揄拍精品| 在线播放91| 三上悠亚一区二区| 国产在线无码av完整版在线观看| 囯产av无码片毛片一级| 色综合a怡红院怡红院首页| 日韩一区二区在线电影| 天天做天天爱天天爽综合区| 不卡的在线视频免费观看| 国产啪在线| 国产簧片免费在线播放| 本亚洲精品网站| 五月婷婷激情四射| 成人免费黄色小视频| 暴力调教一区二区三区| www.av男人.com| 免费毛片网站在线观看| 色婷婷色丁香| 综合色88| 日韩在线2020专区| 国产美女无遮挡免费视频网站 | 国产毛片高清一级国语 | 久久亚洲AⅤ无码精品午夜麻豆| yjizz视频最新网站在线| 亚洲精品视频在线观看视频| 日韩精品成人网页视频在线| 国产乱子伦手机在线| 国产网站一区二区三区| 欧美激情第一区| 国产成人永久免费视频| 极品av一区二区| 国产麻豆精品在线观看| 免费人成视网站在线不卡| 久久99精品国产麻豆宅宅| 久无码久无码av无码| 亚洲69视频| 国产亚洲欧美日本一二三本道| 亚洲欧洲一区二区三区| 无码又爽又刺激的高潮视频| 欧美人与牲动交a欧美精品| 日本91视频| 亚洲一级毛片在线播放| 97se亚洲综合在线天天| 永久免费无码日韩视频|