日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【数据结构与算法】字符串匹配 BF算法 RK算法

發布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据结构与算法】字符串匹配 BF算法 RK算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 單模式串匹配
    BF 算法和 RK 算法
    BM 算法和 KMP 算法
  • 多模式串匹配算法
    Trie 樹和 AC 自動機
  • 一、BF 算法

    1,BF算法是Brute Force的縮寫,中文譯作暴力匹配算法,也叫樸素匹配算法。
    2,兩個概念:主串和模式串
    如在字符串A中查找字符串B,則字符串A就是主串,字符串B就是模式串
    將主串長度記為n,模式串的長度記作m。因為是在主串中查找模式串,所以n>m
    3,BF算法的思想可概括為:我們在主串中,檢查起始位置分別是0,1,2……n-m且長度為m的n-m+1個子串,看有沒有更模式串匹配的。
    4,極端情況下,如主串是“aaaaa…aaaaa”,模式串是“aaaab”。每次都比對m個字符,要比對n-m+1次,所以最壞的時間復雜度是O(mn)。
    5,雖然BF算法時間復雜度很高,但在實際開發中使用的非常常見。
    原因1:實際軟件開發中,大部分情況下,模式串和主串的長度都不會太長。每次模式串與主串中的子串匹配時,當中途不能遇到匹配的字符的時候,就可以停止,不需要全部對比一次。所以理論上最壞情況時間復雜度是O(mn),但這更多的是統計意義上的,大部分情況中,這個算法執行的很高效。
    原因2:樸素字符串匹配算法思想簡單,代碼實現也非常簡單,簡單就意味著不容易出錯。工程中,在滿足性能要求的前提下,簡單是首選,也是常說的KISS(keep it Simple and Stupid)設計原則。
    6。應用 Java IndexOf
    處理小規模的字符串匹配

    二、RK算法:

    1,RK算法的全稱是Rabin-Karp算法,是兩位發明人的名字拼接。是BF算法的升級版
    2,BF算法的問題在于每次檢查主串與子串是否匹配,需要依次對比每個字符,所以BF算法的時間復雜就比較高。但引入哈希算法,時間復雜度立即就會降低。
    3,RK算法的思路:
    通過哈希算法對主串中的n-m+1個子串分別求哈希值,
    然后逐個于模式串的哈希值比較大小,如果相等就說明有對應的模式串。
    4,通過哈希算法計算字符的哈希值時,需要遍歷子串中的每個字符,這只提供了模式串與子串比較的效率,但整體的效率并沒有提高。
    5,為了提高哈希算法計算子串哈希值的效率,可以通過哈希算法的設計來解決。
    假設要匹配的字符串的字符集中只包含k個字符,這就可以用一個k進制數來表示一個子串,這個k進制數轉化成k
    進制,作為子串的哈希值。

    6,這種哈希算法有個特點,在主串中,相鄰兩個子串的哈希值的計算公式有一定關系。

    7,RK算法的時間復雜度:
    ①:整個RK算法包含兩個部分,計算子串哈希值和模式串哈希值與子串哈希值之間的比較。
    ②:第一部分,只需要掃描一遍主串就能計算出所有子串的哈希值了,復雜度是O(n)
    ③:模式串哈希值與每個子串哈希值之間的比較時間復雜度是O(1),總共需要比較n-m+1個子串的哈希值,所有,這部分的時間復雜度也是O(n)。
    所以RK算法整體時間復雜度就是O(n)。

    8,如果模式串很長,相應的主串中子串也會很長,通過上面的哈希算法計算得到的哈希值就可能很大,如果超過了計算機中整形數據可以表示范圍,該如何解決?
    答:我們可以把字符串中每個字母的數字相加(每個字母代表一個素數),最后得到的和作為哈希值。這種哈希算法產生的哈希值的數據范圍就相對要小很多。
    9,若出現哈希沖突如何解決?
    答:如果兩值相等,比較子串中每個字符。

    所以,哈希算法中的沖突概率要相對控制得低一些,如果存在大量沖突,就會導致RK算法的時間復雜度退化,效率下降。極端情況下,如果存在大量的沖突,每次都要對比子串和模式串本身,時間復雜度就會退化成O(n*m)。

    筆記整理來源: 王爭 數據結構與算法之美

    總結

    以上是生活随笔為你收集整理的【数据结构与算法】字符串匹配 BF算法 RK算法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 无码免费一区二区三区免费播放 | 欧美极品少妇xxxxⅹ裸体艺术 | 国产精品96久久久久久 | 欧美成人做爰大片免费看黄石 | 欧美激情精品久久久久久免费 | 强行挺进白丝老师里呻吟 | 又大又粗欧美黑人aaaaa片 | 亚洲精品第三页 | 偷拍超碰 | 色射影院 | 手机在线看片1024 | 国产精品一区二区三区四区 | 国产91片| 91麻豆产精品久久久久久夏晴子 | 99精品久久久久久中文字幕 | 欧美日本韩国在线 | 精品久久久久久久久久久国产字幕 | 国产情侣露脸自拍 | 成人免费视频大全 | 就爱操av| 鲁一鲁色一色 | 日本黄在线观看 | 制服丝袜av在线播放 | 本道综合精品 | 九九五月天 | 日韩午夜免费 | 久久免费av | 日韩中文字幕在线播放 | ts人妖在线观看 | 日韩精品视频免费在线观看 | 天天干夜夜嗨 | 国产精品视频久久久久 | 成人手机视频 | 三女警花合力承欢猎艳都市h | 欧美自拍色图 | 国产第三区 | 一本色道久久88综合无码 | 国模人体一区二区 | 激情综合站 | 男阳茎进女阳道视频大全 | 福利片在线播放 | 亚洲三级中文字幕 | www.国产一区 | 深夜福利日韩 | 丁香亚洲 | 乳色吐息在线看 | 久久精品国产亚洲av久 | 亚洲激情 | 日本视频一区二区 | 欧美xxxxav | 色女孩综合 | 国产午夜福利一区二区 | 午夜久久视频 | 亚洲爽爽网 | 一级免费在线观看 | 欧美成人黄色网 | av中文在线资源 | 色日本在线 | 国产精品xxx在线 | 男人操女人的免费视频 | 亚洲av日韩av在线观看 | 香蕉福利| 天天做夜夜爽 | 欧美一级黄色录像 | 中文自拍 | 日韩亚洲欧美一区二区三区 | 久久视精品 | 嫩草精品 | www.看毛片| 男人久久天堂 | 欧美色xxxxx| 日韩美女激情视频 | 欧美射| 精品人妻一区二区三 | 99久久精品一区二区 | 91色在线播放 | 性一交一乱一色一视频麻豆 | 成人动漫在线观看免费 | 97人妻人人揉人人躁人人 | 午夜整容室 | 亚洲一区a| 国产一区二区久久精品 | 91大片免费看 | 男男车车的车车网站w98免费 | 最近最好的2019中文 | 国产在线综合视频 | 久久人妻少妇嫩草av蜜桃 | 亚洲不卡视频 | 日韩视频在线免费播放 | 色综合天天综合网国产成人网 | 欧美日韩一区二区三区视频 | 成年人视频在线免费观看 | 国产伦精品一区二区三区四区免费 | 99久久精品一区 | 97欧美视频| 日本黄网在线观看 | 亚洲经典av | 变态另类一区 | 成人深夜免费视频 |