• <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樹(字典樹)

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

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

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

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

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

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

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

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

            這樣一來我們詢問和插入可以一起完成,所用時(shí)間僅僅為單詞長度,在這一個(gè)樣例,便是10。

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

            posted on 2008-04-05 20:02 zoyi 閱讀(361) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            歡迎光臨 我的白菜菜園

            <2008年3月>
            2425262728291
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(8)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            acmer

            online judge

            隊(duì)友

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

            技術(shù)

            朋友

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            狠狠色噜噜色狠狠狠综合久久| 久久亚洲精品无码VA大香大香| 久久精品国产亚洲AV电影| 久久综合色区| 亚洲国产成人精品女人久久久 | 人人狠狠综合久久亚洲婷婷| 久久99精品久久只有精品| 大香伊人久久精品一区二区 | 成人精品一区二区久久久| 久久电影网一区| 欧美一区二区久久精品| 精品国产青草久久久久福利| 久久99精品综合国产首页| 久久久久国色AV免费观看| 99精品久久精品| 亚洲va国产va天堂va久久| 色播久久人人爽人人爽人人片AV| 无码人妻久久一区二区三区| 久久国产乱子伦免费精品| 日韩人妻无码一区二区三区久久| 999久久久无码国产精品| 久久99国产精品99久久| 久久久噜噜噜久久| 久久婷婷五月综合色奶水99啪| 看全色黄大色大片免费久久久| 国内精品久久久久久99蜜桃 | 三级三级久久三级久久| 久久久久亚洲精品男人的天堂| 久久精品国产亚洲av麻豆图片| 97超级碰碰碰碰久久久久| 久久精品夜夜夜夜夜久久| 日日狠狠久久偷偷色综合免费| 99久久精品免费看国产| 久久精品国产亚洲av日韩| 人妻无码精品久久亚瑟影视 | 国产精品美女久久久免费| 久久久久人妻精品一区二区三区 | 欧美激情一区二区久久久| 婷婷久久综合| 久久精品人妻中文系列| 亚洲va久久久噜噜噜久久男同|