Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了golang中地图的大O性能是多少?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
“Map types” section of the go language specification描述了地图类型的界面和一般用法以及 “Go maps in action” post on The Go Blog便提及的哈希表和“快速查找,添加删除”.

current runtime/hashmap.go source code将其实现描述为哈希表(通常是分摊的O(1));但是,我没有看到语言规范或其他材料中的性能特征(例如Big O性能)的任何保证.

go语言是否为地图类型或仅提供接口保证提供任何性能保证(例如,恒定时间插入/查找/删除?)? (与接口和实现明显分开的Java语言相比.)

语言参没有明确保证地图的性能.有一种隐含的期望,即地图的执行方式与您希望执行的哈希表类似.我不知道性能保证如何避免模糊指定或不准确.

Big-O复杂度是描述地图运行时间的一种不好的方式:实际上,实际的时钟时间是相关的,而复杂性则不然.从理论上讲,具有来自有限域(例如整数)的密钥的映射在空间和时间上通常是O(1),而具有无限域(例如字符串)的密钥的映射需要散列并且相等性测试的细节包括在成本中,这使得插入和查找最佳情况O(N log N)平均(因为密钥平均大小必须至少为O(log N),以构造具有N个条目的哈希表.除非您在规范它将是不准确的,并且实现正确的好处并不值得.

为了保证实际的运行时而不是复杂性,它也很难:有各种各样的目标机器,以及缓存和垃圾收集的混淆问题.

大佬总结

以上是大佬教程为你收集整理的golang中地图的大O性能是多少?全部内容,希望文章能够帮你解决golang中地图的大O性能是多少?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。