理解直接地址表的好处

时间:2016-09-11 10:25:27

标签: algorithm search data-structures

我正在努力理解直接地址表。根据下图(来源:Cormer的算法简介),您可以定义一个大型数组来存储对象。必须是存储对象的一个​​字段是整数类型。该整数定义了对象数组中的位置。它在这里被命名为关键。

因此,如果您要执行搜索或删除,则只能使用密钥(但不能使用卫星数据)。无法对卫星数据进行搜索。我并没有真正看到这种结构的好处,因为它限制了你只能基于键搜索,键总是整数而不是感兴趣的实际卫星数据。为了使这个数据结构有用,需要有一种从卫星数据计算密钥的方法,对吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

每个数据结构都是为特定目的而构建的,这样可以在某些操作的情况下获得优势,同时又可以惩罚其他操作。

直接地址表允许快速访问给定密钥的值,或者换句话说,从密钥域到值范围(或内容)的映射。密钥可以是评论中提到的任何内容,但必须是“hashable”。

它可以用于许多重要的目的,例如在内存转换中,您希望将键值(偏移量)快速转换为实际地址。这将允许人们容易地使用标签,并且如果有变化(新地址替换旧的地址),则必须简单地修改翻译机制,即。映射表(基于直接地址表)。

可能还有其他几种情况可以使用它。