• <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的范圍難以接受。現(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 閱讀(354) 評(píng)論(0)  編輯 收藏 引用

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


            歡迎光臨 我的白菜菜園

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(8)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            acmer

            online judge

            隊(duì)友

            技術(shù)

            朋友

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久久久国产一区二区| 99国内精品久久久久久久| 91精品日韩人妻无码久久不卡| 狠狠色丁香久久婷婷综合| 日本精品久久久久久久久免费| 久久精品国产一区二区三区 | 国产69精品久久久久久人妻精品 | 久久男人Av资源网站无码软件| 久久精品国产久精国产果冻传媒| 午夜精品久久久内射近拍高清| 久久综合九色综合久99| 99久久亚洲综合精品网站| 久久国产一区二区| 久久国产视频网| 久久这里只有精品视频99| 无码任你躁久久久久久老妇App| 亚洲精品99久久久久中文字幕| 久久婷婷五月综合国产尤物app | 国产福利电影一区二区三区久久久久成人精品综合 | 性做久久久久久久久| 久久久久久久久波多野高潮| 亚洲国产一成人久久精品| 久久国产热这里只有精品| 久久99精品免费一区二区| 色播久久人人爽人人爽人人片aV | 久久久这里有精品| 色综合久久中文字幕无码| 久久国产高清字幕中文| 色8激情欧美成人久久综合电| 久久综合香蕉国产蜜臀AV| 久久久青草青青亚洲国产免观| 久久成人永久免费播放| 无码国内精品久久人妻| 一本大道加勒比久久综合| 久久亚洲精品国产精品婷婷 | 97久久香蕉国产线看观看| 久久久久免费视频| 久久99久久99精品免视看动漫| 欧美色综合久久久久久| 99re久久精品国产首页2020| 亚洲国产精品成人AV无码久久综合影院|