基於英文單詞的快速HASH索引演算法

2021-04-13 12:49:07 字數 825 閱讀 4442

原貼:http://dev.csdn.net/article/47/47973.shtm

csdn - 文件中心 - 其他 標題

基於英文單詞的快速hash索引演算法。選擇自 tarkey 的 blog

關鍵字基於英文單詞的快速hash索引演算法。

出處因為有專案需要,要做乙個類似ispell的軟體,其中會產生大量的對單詞的查詢操作,於是經過一翻研究, 得出以下hash演算法,經過驗證比一般的查表的fnv hash演算法產生的分布曲線基本沒什麼兩樣,並且在大部分的不同字典下,本演算法要比查表的fnv hash演算法表現出速度更快,分布更均勻。但是因為是實驗結果,所以暫時還沒得出有效的數學推論,但是從大量的不同的字典測試資料來看,此演算法確實效率不 錯。

由於以前沒有涉及過相關的純演算法的設計,所以剛剛開始的時候,打算隨便選用一種hash,比如說用%除大質數,然後藉此搭建乙個比較強壯的測試環境,然後打算根據測試結果來改進hash演算法的模型。

最開始,我的hash函式是這樣的:

unsigned int hash_func(char *str, int len)

非常簡單,但是這是絕對不可取的,通過這個函式,我選取了乙個23w詞的字典做為測試,當hash size=1024的時候,得到了以下的圖象:

zy422

( 2005-07-02)

按最後一種演算法,

9757_101761 和 8757_101761  這兩個的字串算出的hash值怎麼是一樣的

csdn 網友

( 2004-12-07)

最後乙個演算法有問題,應該在函式開始的時候把len除以2,否則會計算兩倍於字串長度的記憶體空間

python中的英文單詞

list是乙個可變的有序表,所以,可以往list中追加元素到末尾 classmates michael bob tracy adam 也可以把元素插入到指定的位置,比如索引號為1的位置 classmates.insert 1,jack classmates michael jack bob trac...

英文單詞Advanced的意思

iamlaosong文 倉儲系統wms中有個asn的概念,asn的英文是advanced shipping notice,直譯就是提前裝運通知,又叫預期收貨通知。預期收貨通知通常被用於倉庫中的實際收貨,能減少資料輸入時間和簡化收貨流程。advanced的意思印象中就是高階的 先進的,這兒的意思是提前...

歌曲中的英文單詞

glory n.光榮,榮譽 對上帝的 贊 美 頌 壯麗 觀 輝煌,燦爛 可讚美 誇耀 的事 繁榮,昌盛 興致勃勃,得意揚揚 宗 天國的榮譽,天福 神像後的 光輪 日 月 華,日冕 the glory of the sunset 落日的壯觀 distress n.苦惱 痛苦 窮困 貧苦 危難,不幸 律...