Tekson的数据结构程序9——搜索
9. 搜索
搜索方法有:順序搜索法(即鏈表搜索法)、二分搜索法、二叉樹搜索法、哈希表搜索法、TRIE樹搜索法。
其中,鏈表搜索法的搜索速度為;二分搜索法與二叉樹搜索法的搜索速度為;哈希表的搜索速度為;TRIE樹搜索法的搜索的時(shí)間復(fù)雜度為,其中I為TRIE樹的層數(shù)/深度。
可見,按時(shí)間復(fù)雜度來(lái)衡量各種搜索方法的搜索速度,則可以得到如下搜索速度排序:
哈希表 > TRIE樹 > 二叉搜索樹 > 二分搜索法 > 鏈表搜索法。
但是,時(shí)間復(fù)雜度僅僅是搜索速度的一種衡量標(biāo)準(zhǔn)而已,并不一定能真正體現(xiàn)各種搜索法對(duì)應(yīng)于特征詞庫(kù)下的搜索速度排序。例如,如果具有很小的系數(shù)的時(shí)間復(fù)雜度為的鏈表搜索法的搜索時(shí)間將可能小于具有很大系數(shù)的時(shí)間復(fù)雜度為的二叉樹搜索法的搜索時(shí)間。
二叉搜索樹之所以優(yōu)于二分搜索法,是因?yàn)榍罢呖梢越鉀Q后者不適用的情況,例如:二分搜索法不適用于那些數(shù)據(jù)值在運(yùn)行時(shí)才能確定的場(chǎng)合(如編輯器符號(hào)表),因?yàn)橛行驍?shù)組對(duì)于表的插入和刪除操作是一種低效工具。
另外,TRIE的搜索過(guò)程如下圖所示:
其中,層數(shù)I不易被確定,根據(jù)不同的詞庫(kù),同一個(gè)單詞對(duì)應(yīng)的層數(shù)可能不同;而且長(zhǎng)的單詞對(duì)應(yīng)的層數(shù)不一定多。這也是為什么這里用一個(gè)參數(shù)I來(lái)代替層數(shù),而沒(méi)有一個(gè)具體的公式的原因了。
TRIE樹查找一個(gè)字符串的最差的時(shí)間復(fù)雜度是O(I),這時(shí)未必就比二分搜索法好。
轉(zhuǎn)載于:https://www.cnblogs.com/tekson/archive/2009/11/09/1599354.html
總結(jié)
以上是生活随笔為你收集整理的Tekson的数据结构程序9——搜索的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 搭载L2级辅助驾驶的车辆不得靠近天文台!
- 下一篇: 服务器控件开发之基本概念