• <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>
            我叫張小黑
            張小黑的掙扎生活
            posts - 66,  comments - 109,  trackbacks - 0

                                                                                       Trie樹(shù)(字典樹(shù))

            Trie樹(shù)就是字符樹(shù),其核心思想就是空間換時(shí)間。

            舉個(gè)簡(jiǎn)單的例子。

            給你100000個(gè)長(zhǎng)度不超過(guò)10的單詞。對(duì)于每一個(gè)單詞,我們要判斷他出沒(méi)出現(xiàn)過(guò),如果出現(xiàn)了,第一次出現(xiàn)第幾個(gè)位置。

            這題當(dāng)然可以用hash來(lái),但是我要介紹的是trie樹(shù)。在某些方面它的用途更大。比如說(shuō)對(duì)于某一個(gè)單詞,我要詢問(wèn)它的前綴是否出現(xiàn)過(guò)。這樣hash就不好搞了,而用trie還是很簡(jiǎn)單。

            現(xiàn)在回到例子中,如果我們用最傻的方法,對(duì)于每一個(gè)單詞,我們都要去查找它前面的單詞中是否有它。那么這個(gè)算法的復(fù)雜度就是O(n^2)。顯然對(duì)于100000的范圍難以接受?,F(xiàn)在我們換個(gè)思路想。假設(shè)我要查詢的單詞是abcd,那么在他前面的單詞中,以b,c,d,f之類開(kāi)頭的我顯然不必考慮。而只要找以a開(kāi)頭的中是否存在abcd就可以了。同樣的,在以a開(kāi)頭中的單詞中,我們只要考慮以b作為第二個(gè)字母的……這樣一個(gè)樹(shù)的模型就漸漸清晰了……

            假設(shè)有b,abc,abd,bcd,abcd,efg,hii這6個(gè)單詞,我們構(gòu)建的樹(shù)就是這樣的。

            對(duì)于每一個(gè)節(jié)點(diǎn),從根遍歷到他的過(guò)程就是一個(gè)單詞,如果這個(gè)節(jié)點(diǎn)被標(biāo)記為紅色,就表示這個(gè)單詞存在,否則不存在。

            那么,對(duì)于一個(gè)單詞,我只要順著他從跟走到對(duì)應(yīng)的節(jié)點(diǎn),再看這個(gè)節(jié)點(diǎn)是否被標(biāo)記為紅色就可以知道它是否出現(xiàn)過(guò)了。把這個(gè)節(jié)點(diǎn)標(biāo)記為紅色,就相當(dāng)于插入了這個(gè)單詞。

            這樣一來(lái)我們?cè)儐?wèn)和插入可以一起完成,所用時(shí)間僅僅為單詞長(zhǎng)度,在這一個(gè)樣例,便是10。

            我們可以看到,trie樹(shù)每一層的節(jié)點(diǎn)數(shù)是26^i級(jí)別的。所以為了節(jié)省空間。我們用動(dòng)態(tài)鏈表,或者用數(shù)組來(lái)模擬動(dòng)態(tài)。空間的花費(fèi),不會(huì)超過(guò)單詞數(shù)×單詞長(zhǎng)度。

            posted on 2008-04-05 20:02 zoyi 閱讀(356) 評(píng)論(0)  編輯 收藏 引用
            歡迎光臨 我的白菜菜園

            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(8)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            acmer

            online judge

            隊(duì)友

            • mango_young
            • 麥兜同學(xué)。。不要玩游戲了
            • samehere
            • 甜菜姐姐。。。

            技術(shù)

            朋友

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久精品国产99久久久香蕉| 久久精品国产精品亚洲| 久久久久99精品成人片| 久久久99精品成人片中文字幕| 国产精品久久久久乳精品爆| 国产精品成人99久久久久| 久久综合伊人77777| 香港aa三级久久三级| 久久中文字幕人妻熟av女| 性欧美丰满熟妇XXXX性久久久| 久久99精品国产99久久| 亚洲av成人无码久久精品| 久久婷婷久久一区二区三区| 久久精品一本到99热免费| 人人狠狠综合久久亚洲高清| 国产99久久久国产精品~~牛| 亚洲欧美日韩精品久久亚洲区| 国产三级观看久久| 久久久精品人妻一区二区三区蜜桃| 久久精品三级视频| 国产成人精品久久一区二区三区| 国产精品九九九久久九九| 久久久国产打桩机| 精品综合久久久久久888蜜芽| 精品无码久久久久久午夜| 香蕉久久夜色精品国产尤物| 要久久爱在线免费观看| 久久www免费人成看国产片| 久久99精品久久久久久噜噜| 久久国产乱子精品免费女| 亚洲午夜久久久影院伊人| 99麻豆久久久国产精品免费| 伊人久久大香线蕉亚洲五月天| 无码任你躁久久久久久久| 国产精品熟女福利久久AV| 亚洲国产精品久久| 亚洲国产精品久久久久久| 亚洲国产天堂久久综合网站| 四虎国产永久免费久久| 国产亚洲精久久久久久无码AV| 精品久久人人做人人爽综合|