数据结构,用于检查列表是否包含R中恒定时间内的元素

时间:2011-04-23 15:59:06

标签: list r map

我正在寻找数据结构,以检查名称是否在常量时间内包含在列表中。目前我正在这样做,但它可能需要O(N)的复杂性。

> l = read.csv("test.csv")[,1]   # reads a long list of names
> if (x %in% l) { ... }        # check if it contains a name, takes O(N) time

2 个答案:

答案 0 :(得分:1)

您可以使用提供关联数组的hash包。您将不得不花费一些时间来构建哈希值,但是当您使用has.key()方法时,它将获得回报,该方法应具有O(1)查找速度。

CRAN有你需要的东西。

答案 1 :(得分:1)

您还可以将环境用作已实现的哈希表。请参阅6年前对此主题的贡献:

http://finzi.psych.upenn.edu/R/Rhelp02/archive/51512.html