利用C++的库map,string.
处理《圣经》只需要7.6s,其中读2.4s,插入操作4.9s,输出操作0.3s。
利用Hash的话可以相比上面节省更少的时间,但是需要的空间会增加。(空间换时间法)
由于《圣经》大约只有29131个不同的单词,于是我们采用了29131最接近这个数的质数作为散列表的大小。
如字符串abc的Hash值为
(97 *31 + 98) * 31 + 99
具体算法如下:
利用C++的库map,string.
处理《圣经》只需要7.6s,其中读2.4s,插入操作4.9s,输出操作0.3s。
利用Hash的话可以相比上面节省更少的时间,但是需要的空间会增加。(空间换时间法)
由于《圣经》大约只有29131个不同的单词,于是我们采用了29131最接近这个数的质数作为散列表的大小。
如字符串abc的Hash值为
(97 *31 + 98) * 31 + 99
具体算法如下: