登录
首页 >  Golang >  Go问答

Golang 地图内部实现 - 它如何在地图中搜索键?

来源:Golang技术栈

时间:2023-04-27 20:11:34 485浏览 收藏

大家好,我们又见面了啊~本文《Golang 地图内部实现 - 它如何在地图中搜索键?》的内容中将会涉及到golang等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我在“The Go Programming Language”中读到“可以检索给定的键......平均使用恒定数量的键比较,无论哈希表有多大。” 不过,我不确定这在内部实现方面意味着什么。这是否意味着它会搜索每个键,直到找到匹配项,或者在内部使用某种类型的二进制(或其他)搜索算法?

例如,如果我有一个包含 2,000 个键的映射,它是否“平均”需要查看 1,000 个才能找到匹配项,还是只需要查看 11(log2 n),就像使用二分搜索一样?

正确答案

本机地图类型使用哈希表实现。它使用键上的散列函数来生成数据数组的索引。因此,通常,大多数动作发生在 O(1) 时间内。这通常是正确的,因为某些键在散列时可能会导致相同的索引,称为冲突,然后必须进行特殊处理。

哈希表很酷!

以上就是《Golang 地图内部实现 - 它如何在地图中搜索键?》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表