首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问一个关于哈希表长度的有关问题

2012-03-31 
问一个关于哈希表长度的问题?一般采用哈希算法的时候,哈希表的长度设为多大?有什么依据?[解决办法]越长碰

问一个关于哈希表长度的问题?
一般采用哈希算法的时候,哈希表的长度设为多大?有什么依据?

[解决办法]
越长碰撞越少,但耗得资源也就多了
[解决办法]
最大的出发点就是没有冲突~
[解决办法]
哈希就是散列,散列就是把关键字分布均匀撒到到每一个桶内.

哈希表越长,散列函数越好,自然查找效率就越高.
[解决办法]
散列函数是第一个要运行的函数,它根据程序员自定义的计算方式,根据key得到一个散列值K.

第二个要做的事情就是K%表长,将这个元素定位到某一个桶内.
[解决办法]

探讨
比如说要处理的数据集合有100,000个,每一项的数据占用内存约为50bytes,我的哈希表的长度在多大比较合适?

[解决办法]
hash表里面存指针,表长整成数据集合的10倍,100000*4*10 也就是4MB内存,没啥
[解决办法]
探讨
引用:

引用:

恩,定位到每个桶内就只能顺序查找了。

那这样的话,复杂度为常数的结论是怎么来的?岂不是对散列表的长度有要求?否则达不到常数的复杂度

[解决办法]
空间换时间
[解决办法]
探讨

可不可以这样说,假设散列表的大小是固定的,那么其查找的复杂度不是常数,而是线性的?

[解决办法]
顶楼上~
[解决办法]
照lz这么说,好像所有的算法都是常数复杂度了

热点排行