我已经在“ Go编程语言”中读到“无论哈希表有多大,平均都可以使用恒定数量的键比较来检索给定的键”。我不确定这在内部实现方面意味着什么。这是否意味着它会搜索每个键,直到找到匹配项,或者内部使用某种类型的二进制(或其他)搜索算法?
例如,如果我有一个具有2,000个键的地图,那么它“平均”是否需要查看1,000才能找到匹配项?或者它只像二进制搜索那样只查看11(log2 n)?
谢谢,本
本机地图类型使用哈希表实现。它在键上使用哈希函数来生成数据数组的索引。因此,通常,大多数动作都在O(1)时间内发生。通常这是正确的,因为某些键在散列时可能导致相同的索引(称为冲突),然后必须对其进行特殊处理。
哈希表很酷!