• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 89  文章 - 118  trackbacks - 0
            <2009年11月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            留言簿(16)

            隨筆分類(56)

            隨筆檔案(89)

            文章分類

            推薦博客

            搜索

            •  

            最新隨筆

            最新評論

            閱讀排行榜

            介紹的一些字符串處理的問題在日常編程中比較常見,但是在大學讀書的時候幾乎一個都沒有涉及,最近學習了一下在這里介紹給大家,僅供參考。

            這些算法與內容包括:

            1、    查找一個短串在一個長串中位置;
            2、    查找一個字符串中最長的重復子串;
            3、    查找一個字符串中重復最多的子串;
            4、    兩個字符串最長的公共子串(連續(xù));
            5、    兩個字符串最長的公共子序列(不連續(xù));
            6、    介紹一種強大的數(shù)據(jù)結構,Suffix tree.

            這里有一個PPT:
            http://www.shnenglu.com/Files/humanchao/StringAlg.zip

            -------------------------------------------------

            查找一個短串在一個長串中位置

            這個問題傳統(tǒng)的解法時間復雜度為O(m*n),m、n為兩個串的長度。有一個Sunday算法,可以最大限度的優(yōu)化這個比較過程,原理如下:

            1、建立一個hash table,依次把search各個字符值作為table索引,為table相應的位置一個值(表示字符存在),如果出現(xiàn)重復,后面的位置會覆蓋前面的位置。
            例:我們要在"WHICH-FINALLY-HALTS.—AT-THAT-POINT"(簡稱string)查找" AT-THAT "(簡稱pat),剛開始時,把pat與string對齊,查看串string中與串pat 相對應的字符(F),在pat的位置,這個查找的過程時間復雜度通過hash table的下標索引為 O(1): 



            2、如果發(fā)現(xiàn)沒有,說明字符F之前已經(jīng)無法與pat匹配,直接跳到position(F)+stringlength(pat)


             
            3、發(fā)現(xiàn)”-”在pat位置3,于是重新定位對齊兩串為:

             
            4、倒序(從最后一個向前)比較兩串,發(fā)現(xiàn)無法匹配,繼續(xù)跳轉->查找->定位
            因為上面已經(jīng)有一個T匹配成功,這次要從HALTS的S來查找,于是定位為:



            5、上圖無法匹配,從”--AT-“中A后的”-”繼續(xù)查找,重復上過程,最終匹配如圖:
             

            這個算法關鍵點:
            1、建立為pat建立hash表,以提高查找字符的速度;
            2、對齊跳轉,快速的后移比較,使比較次數(shù)減少。

            具體的代碼實現(xiàn)可以參考鏈接:

            http://blog.csdn.net/unicode1985/archive/2007/05/30/1631038.aspx


            posted on 2009-11-25 17:20 胡滿超 閱讀(3132) 評論(0)  編輯 收藏 引用
            人妻精品久久久久中文字幕69 | 一本久久a久久精品vr综合| 久久精品夜色噜噜亚洲A∨| 日本亚洲色大成网站WWW久久 | 亚洲国产精品热久久| 91久久精品国产成人久久| 午夜精品久久久久成人| 久久精品国产亚洲AV嫖农村妇女| 久久久久国产一级毛片高清版| 日本精品久久久久影院日本| 久久精品水蜜桃av综合天堂| 久久精品无码一区二区三区免费| 亚洲AV无码1区2区久久| 久久精品国产色蜜蜜麻豆| 亚洲综合精品香蕉久久网| 国内精品久久久久久中文字幕| 精品国产99久久久久久麻豆| 精品久久久久久中文字幕人妻最新 | 国产精品久久久久久搜索| 伊人久久大香线蕉无码麻豆| 青青青伊人色综合久久| 久久亚洲欧美国产精品| 久久午夜免费视频| 久久久久亚洲精品无码蜜桃| 久久久久久久亚洲精品| 久久精品国产只有精品2020| 亚洲午夜久久久久久噜噜噜| 香港aa三级久久三级老师2021国产三级精品三级在 | 青青草原综合久久大伊人精品| 久久水蜜桃亚洲av无码精品麻豆 | 久久精品国产精品青草app| 亚洲va久久久久| 亚洲国产精品成人久久蜜臀 | 日韩精品久久久久久免费| 久久亚洲国产最新网站| 亚洲欧美成人久久综合中文网| 久久久久国产一区二区三区| 久久精品国产第一区二区| 国产毛片久久久久久国产毛片| 久久综合久久伊人| 日产久久强奸免费的看|