首页 > 解决方案 > 访问关联数组的元素的时间如何与该数组中元素的数量无关?

问题描述

我目前正在制作我的第一个值得注意的 awk 脚本(特别是 gawk)。当然,有很多问题,所以我阅读了它的大部分手册并偶然发现了以下声明

awk 的数组是高效的——访问一个元素的时间与数组中元素的数量无关。

考虑到它的数组是关联的并且数组索引是字符串,gawk 是如何实现这一点的?

即使他们正在对实际索引值进行散列,这些散列仍然必须存储在适当的数据结构中,如二叉树等,其中访问时间与元素的数量无关。

我可以阅读源代码试图了解它是如何完成的,但我怀疑我是否会在合理的时间内完全理解这一点。所以我希望有人能尽快解释底层技术或提供参考。

标签: arraysawk

解决方案


推荐阅读