【发布时间】:2010-10-02 03:08:11
【问题描述】:
经典的 O(1) 随机访问数据结构是数组。但是数组依赖于所使用的编程语言来支持有保证的连续内存分配(因为数组依赖于能够获取基的简单偏移量来查找任何元素)。
这意味着语言必须具有关于内存是否连续的语义,而不是将其作为实现细节。因此,可能需要一个具有 O(1) 随机访问但不依赖于连续存储的数据结构。
有这种事吗?
【问题讨论】:
-
很酷的问题。像其他人一样,我立即想到了哈希表,然后,当然,意识到这只是一个桶数组。嗯。
-
我之所以想到它是因为我对 PL 设计很感兴趣,并且正在考虑某些语言如何具有非常精确和明显的空间语义(例如 C)而其他语言如何没有(我在想Haskell 和空间泄漏——但我不知道 Haskell 是否没有指定或者只是不直观/难)
标签: algorithm arrays memory data-structures complexity-theory