亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2015-11-04 07:40:16周慶勛
        山東工業(yè)技術 2015年21期
        關鍵詞:模式匹配算法

        周慶勛

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

        關鍵詞:散列函數(shù);模式匹配;算法

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

        0 引言

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

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

        模式匹配算法是文本處理領域中比較重要的算法,一個簡單、高效率的模式匹配算法對提高和模式匹配有關的軟件的效率有很大幫助,本文介紹一種基于散列函數(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]),直到匹配或比較結束為止。

        2 算法

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

        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)。盡管該算法在效率上不是最好,但算法簡單,易于理解,在對時間復雜度要求不是很苛刻的環(huán)境下,還是一個簡單高效的模式匹配算法。

        參考文獻:

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

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

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

        猜你喜歡
        模式匹配算法
        儲氫場景與氫氣儲運系統(tǒng)的多維度模式匹配優(yōu)化研究
        太陽能學報(2024年6期)2024-08-12 00:00:00
        基于模式匹配的計算機網(wǎng)絡入侵防御系統(tǒng)
        電子制作(2019年13期)2020-01-14 03:15:32
        基于MapReduce的改進Eclat算法
        Travellng thg World Full—time for Rree
        具有間隙約束的模式匹配的研究進展
        移動信息(2018年1期)2018-12-28 18:22:52
        進位加法的兩種算法
        OIP-IOS運作與定價模式匹配的因素、機理、機制問題
        算法初步兩點追蹤
        基于增強隨機搜索的OECI-ELM算法
        一種改進的整周模糊度去相關算法
        国产69精品麻豆久久| 天堂网www资源在线| 暖暖视频在线观看免费| 精品国产乱码久久久久久影片| 国内精品自在自线视频| av人摸人人人澡人人超碰小说| 99RE6在线观看国产精品| 最新亚洲av日韩av二区一区| 国产午夜精品综合久久久| 久久精品中文字幕有码| 午夜影视免费| 久久久久久久综合综合狠狠| 中文字幕精品一二三四五六七八| 女同久久精品国产99国产精品| 音影先锋色天堂av电影妓女久久| 久久精品视频日本免费| 欧美日韩精品乱国产| 亚洲人成网址在线播放| 性饥渴艳妇性色生活片在线播放 | 国产精品jizz观看| 免费国产一级片内射老| 亚洲国产综合精品一区最新| 国产无套乱子伦精彩是白视频 | 亚洲中文字幕九色日本| 亚洲av永久无码精品网址| 久久精品一区二区三区av| 亚洲高清视频在线播放| 水蜜桃视频在线观看入口| 97人妻人人揉人人躁九色| 日本大骚b视频在线| 亚洲乱码av中文一区二区| 99国产超薄丝袜足j在线观看| 亚洲视频综合在线第一页| 中文字幕综合一区二区| 久久久www成人免费毛片| 2021国产视频不卡在线| 国产毛片一区二区三区| 国产高清乱码又大又圆| 国产成人精品日本亚洲| 国产乱人伦AV在线麻豆A| 国产精品一区二区三密桃|