<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      字符串匹配的 Boyer-Moore 算法

      上一篇文章,我介紹了 字符串匹配的KMP算法

      但是,它并不是效率最高的算法,實際采用并不多。各種文本編輯器的” 查找” 功能(Ctrl+F),大多采用 Boyer-Moore 算法。

      下面,我根據 Moore 教授自己的例子來解釋這種算法。

      1.

      假定字符串為”HERE IS A SIMPLE EXAMPLE”,搜索詞為”EXAMPLE”。

      2.

      首先,” 字符串” 與” 搜索詞” 頭部對齊,從尾部開始比較。

      這是一個很聰明的想法,因為如果尾部字符不匹配,那么只要一次比較,就可以知道前 7 個字符肯定不是要找的結果。

      我們看到,”S” 與”E” 不匹配。這時,“S” 就被稱為” 壞字符”(bad character),即不匹配的字符。我們還發現,”S” 不包含在搜索詞”EXAMPLE” 之中,這意味著可以把搜索詞直接移到”S” 的后一位。

      3.

      依然從尾部開始比較,發現”P” 與”E” 不匹配,所以”P” 是” 壞字符”。但是,”P” 包含在搜索詞”EXAMPLE” 之中。所以,將搜索詞后移兩位,兩個”P” 對齊。

      4.

      我們由此總結出 “壞字符規則”:

      后移位數 = 壞字符的位置 – 搜索詞中的上一次出現位置

      如果” 壞字符” 不包含在搜索詞之中,則上一次出現位置為 -1。

      以”P” 為例,它作為” 壞字符”,出現在搜索詞的第 6 位(從 0 開始編號),在搜索詞中的上一次出現位置為 4,所以后移 6 – 4 = 2 位。再以前面第二步的”S” 為例,它出現在第 6 位,上一次出現位置是 -1(即未出現),則整個搜索詞后移 6 – (-1) = 7 位。

      5.

      依然從尾部開始比較,”E” 與”E” 匹配。

      6.

      比較前面一位,”LE” 與”LE” 匹配。

      7.

      比較前面一位,”PLE” 與”PLE” 匹配。

      8.

      比較前面一位,”MPLE” 與”MPLE” 匹配。我們把這種情況稱為” 好后綴”(good suffix),即所有尾部匹配的字符串。注意,”MPLE”、”PLE”、”LE”、”E” 都是好后綴。

      9.

      比較前一位,發現”I” 與”A” 不匹配。所以,”I” 是” 壞字符”。

      10.

      根據” 壞字符規則”,此時搜索詞應該后移 2 – (-1)= 3 位。問題是,此時有沒有更好的移法?

      11.

       

      我們知道,此時存在”好后綴”。所以,可以采用 “好后綴規則”:

      后移位數 = 好后綴的位置 – 搜索詞中的上一次出現位置

      計算時,位置的取值以” 好后綴” 的最后一個字符為準。如果” 好后綴” 在搜索詞中沒有重復出現,則它的上一次出現位置為 -1。

      所有的” 好后綴”(MPLE、PLE、LE、E)之中,只有”E” 在”EXAMPLE” 之中出現兩次,所以后移 6 – 0 = 6 位。

      12.

       

      可以看到,” 壞字符規則” 只能移 3 位,” 好后綴規則” 可以移 6 位。所以,Boyer-Moore 算法的基本思想是,每次后移這兩個規則之中的較大值。

      更巧妙的是,這兩個規則的移動位數,只與搜索詞有關,與原字符串無關。因此,可以預先計算生成《壞字符規則表》和《好后綴規則表》。使用時,只要查表比較一下就可以了。

      13.


      繼續從尾部開始比較,”P” 與”E” 不匹配,因此”P” 是” 壞字符”。根據” 壞字符規則”,后移 6 – 4 = 2 位。

      14.

      從尾部開始逐位比較,發現全部匹配,于是搜索結束。如果還要繼續查找(即找出全部匹配),則根據” 好后綴規則”,后移 6 – 0 = 6 位,即頭部的”E” 移到尾部的”E” 的位置。

      posted @ 2017-06-29 12:17  lpfuture  閱讀(249)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产愉拍精品手机| 国产一区二区高清不卡| 99福利一区二区视频| 欧美人与zoxxxx另类| 亚洲av成人在线一区| 亚洲精品自拍视频在线看| 久久综合伊人77777| 国产成人精品午夜福利在线观看| 国产精自产拍久久久久久蜜| 91精品国产自产在线蜜臀| 亚洲国产午夜精品理论片在线播放| 亚洲老妇女亚洲老熟女久| 亚洲va成无码人在线观看天堂| 深夜福利资源在线观看| 欧美人成精品网站播放| 日本阿v片在线播放免费| 果冻传媒色av国产在线播放| 蜜臀av午夜精品福利| 日韩精品理论片一区二区| 国产又色又爽又黄的网站免费| 亚洲午夜理论无码电影| 久久精品国产福利一区二区| 免费人成年激情视频在线观看| 综合在线 亚洲 成人 欧美| 亚洲精品宾馆在线精品酒店| 无码熟妇αⅴ人妻又粗又大| 熟女精品视频一区二区三区| 亚洲精品一区二区三区蜜臀| 尹人香蕉久久99天天拍| 亚洲国产精品高清线久久| 亚洲一区二区av观看| 国产麻豆放荡av激情演绎| 国产成人一区二区视频免费| 日本中文字幕在线播放| 精品亚洲综合一区二区三区| 欧美人成精品网站播放| 好男人日本社区www| 国产综合色一区二区三区| 国产制服丝袜无码视频| 国产麻豆9l精品三级站| 亚洲一区二区av偷偷|