哈希表 是惟一一个专用于集合的数据结构。能够以常量的平均时间实现插入,删除和查找数组
哈希表的时间复杂度是 O(1)数据结构
哈希表的思想是 用一个与集合差很少大小的数组来存储这个集合,将数据元素的关键字映射的数组的下标上面,这个映射咱们称之为 散列函数 数组称之为 散列表,查找数据的时候,根据被查找的关键字找到存储数据元素的地址,从而获取元素函数
散列函数的应用带来一个比较复杂的问题:;设计
由于散列函数的定义域范围比值域大 致使2个或者更多的数据元素可能会被映射到同一个位置 称为 冲突或者碰撞。这种状况是不可避免的。所以 实现哈希表 二个基本的问题是hash
1如何设计散列函数 io
2如何解决碰撞问题table
解决哈希碰撞的几种方法:方法
1:开放地址法数据
2:在哈希法 C# hashtabledict
3: 链地址法 C# dictionary
4:创建一个公共溢出区