Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1418765
  • 博文数量: 842
  • 博客积分: 12411
  • 博客等级: 上将
  • 技术积分: 5772
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-14 14:43
文章分类

全部博文(842)

文章存档

2013年(157)

2012年(685)

分类: C/C++

2013-03-25 13:00:16

原文地址:[数据结构]哈希表 作者:moon_rock

什么是哈希表
首先说说什么是表?顾名思义,就是通过提供的key随机访问到value。那么哈希表,就是通过哈希的方式来实现表。什么叫哈希?哈希又叫散列,就是把任意长度的输入通过哈希函数转化成固定长度的输出,而这个输出就是哈希值

哈希表种类和实现
哈希表一般分为两种:链式哈希表,开地址哈希表。
链表哈希表,一般是每个任意长度的输入通过哈希函数转化成固定长度的输出,然后放到桶(Bucket)里。如果出现不同的输入产生同样的哈希值
碰撞了,碰撞了就追加到桶里,碰撞的越多,桶就越满。
开地址哈希表,一般是每个任意长度的输入通过哈希函数转化成固定长度的输出,放到哈希值对应的slot里,如果冲突了就继续哈希(另外一种哈希方法),直到找到一个空的slot为止。

哈希表的用途
一般随机访问的都可以使用哈希表来实现。最为我们熟知的用法,可能就是编译是产生的symbol table了。
阅读(840) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~