我们先来看看数组的查找操纵:数组是通过数据的索引(index)来取出数值的,比方要找出数组A中索引值为i的元素,那么直接通过 a 就可以取出这个数据。可以看出 数组实现了“数据所在 = f (index)”的映射关系。
假如用哈希表的逻辑来明确的话,这里的 f () 就是一个哈希函数。它完成了索引值到现实所在的映射,这就让数组可以快速完成基于索引值的查找。然而,数组的局限性在于,它只能基于数据的索引去查找,而不能基于数据的数值去查找。
哈希表的操持采取了 函数映射 的头脑,将记载的存储位置与记载的关键字关联起来。如许的操持方式,可以大概根据记载的关键字快速定位到想要查找的记载,而且不须要与表中存在的记载的关键字比力后再来举行查找(比如二分查找)。
哈希表的焦点头脑就是实现了“数据所在 = f (关键字)”的映射关系,如许就可以快速完成基于数据的数值的查找了。
总结一下
数组实现了“所在 = f (index)”的映射关系。字典实现“所在 = f (关键字)”的映射关系
哈希函数