散列表(Hash table,也叫哈希表),是依据键值对(key,value)进行拜访的一种数据结构。他把一对(key,value)经过 key 的哈希值来映射到数组中,这个映射函数叫做散列函数,寄存数据的数组叫做散列表。
举个比如,为了查找某个老友的微信号,你可依据老友首字母次序查找,在首字母为 W 的表中查找王姓的老友,明显比直接查找要快得多。
这儿运用人名作为关键字, 取首字母是这个比如中散列函数的函数规律,寄存首字母的表对应散列表,关键字和函数规律理论上能随意确认。
散列表是依据key值的函数规律映射到数组中,不同的key值有或许会映射到数组的同一个方位,所以在挑选散列函数的时分要使key值映射到函数的方位尽或许涣散。
1,散列函数计算出来的值尽或许等概率、均匀散布在全体空间中,由此削减抵触的产生。
2,散列函数应尽量简略,可以在较短的时间内计算出任一关键字对应的散列地址。
常见的散列函数有:直接定址法、除留余数法、数字分析法、平方取中法、折叠法、随机数法。
它合适关键字的散布根本接连的状况,若关键字散布不接连,空位较多,则会形成存储空间的糟蹋。
直接定址法在特定条件下(如关键字规模已知且较小)是十分高效的散列办法。但是,在实践使用中,因为其对关键字散布的约束和或许的空间糟蹋,直接定址法并不是最常用的散列办法。