《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 一種基于QS的字符串匹配改進算法
一種基于QS的字符串匹配改進算法
寧小軍,周 智,黃劉生
(中國科學技術大學 信息學院,安徽 合肥230027)
摘要: 本文在分析BM和QS算法特點的基礎上,綜合利用了正文T[i+m-1]和T[i+m]位置上的字符信息,提出一種移動距離不小于模式長度的快速字符串匹配算法。該算法解決了QS算法在skip[i+m-1]<skip[i+m]時低效的問題。
Abstract:
Key words :

摘  要: 本文在分析BM和QS算法特點的基礎上,綜合利用了正文T[i+m-1]和T[i+m]位置上的字符信息,提出一種移動距離不小于模式長度的快速字符串匹配算法。該算法解決了QS算法在skip[i+m-1]<skip[i+m]時低效的問題。
關鍵詞: 模式匹配  串搜索  算法

  串匹配問題是計算機科學領域研究中的一個焦點問題,它在情報檢索、自然語言翻譯、基因序列匹配、壓縮數據、圖像處理、網絡入侵檢測以及事務管理系統等諸多非數值處理方面都有著非常廣泛的應用。串匹配就是在一個大的正文T中搜索指定模式P的所有出現位置。按照功能,串匹配算法主要分為三類:精確串匹配算法、近似串匹配算法和正則表達式算法。其中,最有影響的是KMP算法、BM算法、RK隨機算法和SUANDAY算法以及由此而產生的一些改進算法。在實際應用中,這些算法都各有千秋,各有側重。
1  BM和QC算法分析
  字符串匹配問題描述:

1.1 BM算法
  BM是由Boyer和Moore于1977年提出的,它是一種簡單、快速、通用的工程算法。它的特點是在窗口內部從右向左逆向匹配,采用壞字符啟發和好后綴啟發兩種方法,通過預處理模式分別計算BadcharShift[char]和GoodSufShift[char]轉移表。當發現不匹配時,選擇兩者中的最大值作為模式向右移動的距離。
BM算法的預處理分為壞字符轉移表和好后綴轉移表兩個階段。
  壞字符移動表BadcharShift[char]記錄的是字符char在模式串P中的最右出現位置。具體表述為:
  

  BM算法的空間復雜度和預處理時間均為O(m+σ)。在最壞情況下,它的時間復雜度為O(nm);在最好情況下,時間復雜度為O(n/m)。
  從理論上講,BM算法的時間復雜度要大大高于KMP算法的時間復雜度O(m+n),但在實際應用中,BM算法的搜索步長接近于模式長度m,所以執行效率非常高。
1.2 QS算法
  QS算法是一種簡單、快速、實用的算法。在模式匹配過程中,該算法將發生失配的字符與計算右移量兩者獨立開來的現象,其僅利用T[i+m]字符計算BadcharShift[T[i+m]]來決定模式轉移。通常情況下,模式轉移量為m+1,這大大提高了算法的搜索步長和匹配效率。
  QS算法的預處理與BM算法的對壞字符啟發的預處理相同。
  QS算法的匹配過程如下:
  

  QS算法的空間復雜度和預處理時間均為O(m+σ)。在最壞情況下,它的時間復雜度為O(mn);在最好情況下,時間復雜度為O(n/m+1)。
  QS算法利用了失配情況下T[i+m]字符引起的Badchar-
  Shift[T[i+m]],大大簡化了初始化過程,使其編碼簡單且調試迅速。通常情況下,QS算法比BM算法要快,但是當T[i+m-1]不在模式中,而T[i+m]在模式中時,即(m-BadcharShift[T[i+m-1]])>(m-BadcharShift[T[i+m]])時,QS算法的效率就會大打折扣。
2  新算法
2.1 算法基本思想及步驟
  針對上述分析,本文在吸收BM算法在模式窗口內自右向左逆向搜索的特點和QS算法利用BadcharShift[T[i+m]]向右最大移動模式串的特點的基礎上,充分挖掘了BadcharShift[T[i+m-1]]的潛在可利用的隱含信息,進一步優化和完善了QS算法。在預處理方面,新算法與QS算法基本相同,不同的是當模式在當前模式匹配窗口內自右向左匹配正文的過程中發生失配時,比較正文中T[i+m]和T[i+m-1]這兩個字符的移動距離,取其最大值進行移動,然后在新位置重新開始模式匹配。圖1為一個新算法匹配過程示例。

  新算法的匹配過程如下:

  

  新算法在QS算法的基礎上,充分利用了失配時T[i+m-1]和T[i+m]兩個字符引起的移動距離的最大值,使得移動距離增大,減少了模式匹配的比較次數。通常情況下,新算法的時間復雜度為O(n/m+1)。
2.2 性能測試
  針對本文提出的新算法,從參考文獻[1]中抽取chapter 32 String Matching中第一段內容作為測試正文,并在同樣的軟硬件環境下對BF、BM、QS和新算法進行比較,以檢測新算法在性能和效率方面的表現。表1為各種算法性能比較結果。

  測試正文:
  Finding all occurrences of a pattern in a text is a problem that arises frequently in text editing programs.Typically,the text is a document being edited,and the pattern searched for is a particular word supplied by the user.Efficiedt algorithms for this problem can greatly aid the responsiveness of the test editing program.String matching algorithms are also used,for example,to search for particular patterns in DNA sequences.
  搜索模式:the pattern searched
  由表1可知:新算法是一種比較次數少、耗時小、效率高的快速字符串匹配算法。

參考文獻
1   Knuth D E,Morris J H,Pratt V R.Fast pattern matching in  string.SIAM Journal on Computing,1977;6(2)
2   Boyer R S,Moore J S.A fast string searching algorithm.  Communications of ACM,1977;20(10)
3   Sunday D M.A very fast substring search algorithm.Communication of the ACM,1990;33(1)
4   Cormen T H,Leiserson C E,Rivest R L.TNTRODUCTION TO ALGORITHM(secondd edition).The Massachusetts Institute of Technology,2001;907

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美肥婆在线| 欧美v日韩v国产v| 久久精品国语| 亚洲欧美国产高清va在线播| 在线亚洲一区| 亚洲视频第一页| 一区二区精品在线| 亚洲日本黄色| 亚洲欧洲日本国产| 91久久线看在观草草青青| 亚洲国产导航| 亚洲欧洲日韩女同| 亚洲黄色成人| 亚洲精品免费在线播放| 亚洲人成啪啪网站| 亚洲精选91| 99热免费精品| 国产精品99久久久久久宅男| 亚洲午夜视频在线观看| 亚洲一区不卡| 欧美一区二区啪啪| 亚洲大片免费看| 亚洲精品少妇网址| 一卡二卡3卡四卡高清精品视频| 99国产精品久久久久久久成人热| 99在线精品视频| 亚洲在线网站| 欧美在线免费视屏| 久久久久国产精品www| 久久亚洲影音av资源网| 免费不卡中文字幕视频| 欧美国产亚洲精品久久久8v| 欧美日韩成人激情| 国产精品九九| 国产一区av在线| 在线观看日韩www视频免费| 亚洲国产精品成人精品| 99热精品在线观看| 午夜精品福利视频| 午夜一区不卡| 欧美精品亚洲二区| 欧美日韩一区三区| 国产精品亚洲成人| 国产专区欧美专区| 亚洲国产mv| 一区二区三区欧美在线| 欧美一区二区视频网站| 91久久精品一区二区三区| 一本色道久久综合亚洲精品不 | 欧美一区视频在线| 亚洲欧洲一区二区在线观看| 亚洲无线观看| 久久久久国产一区二区| 欧美日韩一区二区三区在线 | 好吊日精品视频| 亚洲国产日韩欧美在线99| 99视频有精品| 欧美一区二区三区精品| 亚洲精品视频免费| 香蕉国产精品偷在线观看不卡| 久久久久久久久岛国免费| 一区二区三区鲁丝不卡| 亚洲视频在线观看三级| 性做久久久久久| 美女91精品| 国产精品九九久久久久久久| 国产亚洲一区二区三区| 亚洲精品国精品久久99热| 亚洲免费在线电影| 亚洲精品久久久久久久久久久久久 | 在线综合亚洲欧美在线视频| 久久精品亚洲一区| 亚洲天堂久久| 免费一区视频| 国产日韩精品在线| 亚洲日本成人在线观看| 欧美一级艳片视频免费观看| 99国产精品久久久久久久| 久久精品噜噜噜成人av农村| 欧美日韩精品免费观看视一区二区 | 欧美日韩精品不卡| 国产乱码精品一区二区三区忘忧草 | 精品51国产黑色丝袜高跟鞋| 亚洲人成小说网站色在线| 亚洲一区二区免费| 日韩视频在线播放| 久久国产加勒比精品无码| 欧美另类一区| 在线欧美不卡| 香蕉成人久久| 亚洲资源在线观看| 欧美福利视频| 精品成人免费| 日韩一级黄色大片| 国产精品美女在线| 在线观看日韩av电影| 亚洲一区www| 中文有码久久| 免费国产一区二区| 国产三级欧美三级日产三级99| 91久久夜色精品国产网站| 欧美在线在线| 西西裸体人体做爰大胆久久久| 欧美日韩调教| 91久久久国产精品| 亚洲狠狠婷婷| 久久久亚洲高清| 国产色产综合产在线视频| 在线亚洲一区| 亚洲一品av免费观看| 欧美理论片在线观看| 在线不卡中文字幕播放| 欧美在线视频在线播放完整版免费观看 | 欧美亚洲免费高清在线观看| 午夜精品亚洲| 国产精品久久一卡二卡| 日韩午夜免费| 中日韩高清电影网| 欧美日韩一卡二卡| 日韩视频中文字幕| 一区二区三区|亚洲午夜| 欧美韩日视频| 亚洲精品少妇| aa日韩免费精品视频一| 黑人巨大精品欧美一区二区小视频 | 久久精品国产欧美亚洲人人爽| 久久久国际精品| 国产综合自拍| 亚洲福利免费| 欧美1区2区3区| 亚洲福利视频专区| 亚洲人成绝费网站色www| 欧美成人dvd在线视频| 亚洲激情亚洲| 99国内精品久久久久久久软件| 欧美日韩国产免费观看| 日韩亚洲视频| 亚洲免费人成在线视频观看| 国产精品日韩在线观看| 香蕉乱码成人久久天堂爱免费| 久久久久久亚洲精品杨幂换脸| 激情国产一区二区| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产一区二区三区av电影| 久久精品99国产精品日本| 欧美成年人视频网站欧美| 亚洲激情亚洲| 亚洲综合日韩在线| 国产日韩欧美综合精品| 亚洲成人在线视频播放| 欧美成人一区二区三区片免费| 亚洲精品美女久久7777777| 亚洲一区二区三区乱码aⅴ| 国产伦理精品不卡| 亚洲成人自拍视频| 欧美精品国产一区| 亚洲午夜久久久| 久久久伊人欧美| 伊人男人综合视频网| 99日韩精品| 亚洲伊人伊色伊影伊综合网| 欧美福利一区二区三区| 亚洲毛片在线| 亚洲欧美日韩系列| 国内成人精品视频| 亚洲精品在线视频| 国产精品久久久久久久久免费樱桃| 午夜日韩av| 欧美国产第二页| 亚洲一区日韩在线| 久久久免费精品| 亚洲精品欧美专区| 亚洲高清二区| 亚洲国产精品久久久久婷婷老年 | 在线看欧美视频| 一本大道久久精品懂色aⅴ| 国产精品免费看片| 亚洲第一区中文99精品| 久久精品二区三区| 国产老女人精品毛片久久| 久久精品视频在线| 欧美噜噜久久久xxx| 亚洲人成在线观看| 猫咪成人在线观看| 日韩视频专区| 久久国产福利| 亚洲精品国产精品国自产在线| 亚洲欧美在线免费| 在线欧美福利| 亚洲欧美日韩精品久久久| 在线日韩成人| 午夜天堂精品久久久久| 亚洲电影下载| 欧美有码视频| 亚洲精品小视频在线观看| 久久久www| 中文在线资源观看网站视频免费不卡 | 性欧美办公室18xxxxhd| 欧美精品偷拍| 亚洲国产岛国毛片在线|