| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 504 人关注过本帖
标题:关于hash 表
只看楼主 加入收藏
小牛
Rank: 1
等 级:新手上路
威 望:1
帖 子:434
专家分:8
注 册:2006-10-1
结帖率:81.48%
收藏
 问题点数:0 回复次数:2 
关于hash 表
都说,哈希表的是键值对,通过键查找值,这样比较快。
我在想如果通过键查找值的话,那还不是要一个一个比较键的值,然后键的值对上了,
才可能找到相应的值。这样的查找比一般的for循环快在哪里呢?
2015-07-22 20:01
jinjoxie
Rank: 2
等 级:论坛游民
威 望:1
帖 子:19
专家分:61
注 册:2015-6-3
收藏
得分:0 
hash 表可以通过get("键")获取其“键”对应的“值”的,它主要快在通过“键”来找“值”,并不是用来找什么“值”。
如果你想找某个“值”,既然你知道了这个“值”,那你还找来干嘛?或者你想找到这个“值”对应的键是什么?如果这样,你建这hash表时就把“值”和“键”调转不就行了。
2015-07-31 15:23
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
下面的内容来自维基百科,那个通俗的例子可供参考。

散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。

一个通俗的例子是,为了查找电话簿中某人的号码,可以创建一个按照人名首字母顺序排列的表(即建立人名x到首字母F(x)的一个函数关系),在首字母为W的表中查找“王”姓的电话号码,显然比直接查找就要快得多。这里使用人名作为关键字,“取首字母”是这个例子中散列函数的函数法则F(),存放首字母的表对应散列表。关键字和函数法则理论上可以任意确定。
2015-07-31 20:24
快速回复:关于hash 表
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032466 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved