目的:实现一种结构,不经过任何比较,一次直接得到想要的元素。通过某种函数使元素的存储位置与它的关键码之间建立一种一一映射的关系。那么就可以在查找时快速的找到需要的元素。
哈希概念
哈希之散列方法:
- 插入元素时:根据需要插入元素的值,通过某种计算得出元素的存储位置,将该元素插入到其对应的位置。
- 查找元素时:根据需要查找的元素进行某种计算得到其存储位置,将该位置的元素与查找的元素进行比较,若相同则查找成功。
例如:数据集合为{180,750,460,430,800,600,541}
哈希函数:Hash(key) = key%m;(m为内存单元的个数)
假设在该例子中,m为12;
Hash(180) = 0;
Hash(750) = 6;
Hash(460) = 4;
Hash(430) = 10;
Hash(800) = 8;
Hash(603) = 3;
Hash(541) = 1;
所以这些数据集合在内存中的存储为:
可是如果数据有冲突 了应该怎么办???
哈希冲突
哈希冲突:对于值不相同的元素但是却有相同的哈希值。
例如&#