码迷,mamicode.com
首页 > 其他好文 > 详细

哈希表 hash table

时间:2016-05-24 11:49:18      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。

 

首先问题规模确定,例如5台服务器怎么把数据散落在5台上面呢,就用到了hash算法

 用数据(ascii值) % 5 一定小于5  ,就得到了这个数据在哪台服务器上面

hash算法:

  取余,

  保证规模为质数(降低hash冲突)

hash冲突:

  挂链表,返回头结点

  [1], 2 ,3 ,4 5

  1

  1

时间复杂度:

  O(1)

底层实现数组:

  p1为指针

  [p1,p2,p3,p4,p4]

  

自己用c++实现了一个hash table

地址:

https://github.com/xiaoyu-xiaoyu/liblogic/blob/master/HashMap.h

哈希表 hash table

标签:

原文地址:http://www.cnblogs.com/jk0011/p/5522788.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!