追寻梦想的路

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1、定义:Hash表是一种重要的数据结构。它通过将关键字通过hash函数映射到一个内存区,通过关键字就可以直接访问该节点的值。其查找的时间复杂度为O(1)

Hash表也叫做散列表。它通过将关键字的值(key)通过hash函数映射到内存区中,然后在响应的内存区中可以存入相应的值(value),也就是我们常说的键值对(key-value)。

在java中,hash表示存储在数组中的。设hash表的地址空间大小为m(比如有一个大小为n的数组),待存入的元素个数为m,即要将m的元素放入到大小为n的数组中。

 

2、映射机制

线性映射,

3、hash冲突问题

(1)线性再探测法探测法

(2)伪随机探测法

(3)链地址法:将具有相同hash地址的元素存在一个链表中,然后再hash表中存入的是这个链表的头节点。这种方法适用于hash表中元素个数不确定的情况。并且这种方法的有点是插入和删除操作简单方便。

 

实例应用:

 

posted on 2015-03-10 20:26  追寻梦想的路  阅读(139)  评论(0编辑  收藏  举报