【发布时间】:2011-08-01 19:56:12
【问题描述】:
我有一个巨大的键值对映射,大约 10^7,我必须每秒循环 15 次才能更新其内容 是否有任何类或结构可以提供良好的复杂性并减少循环所需的时间?
目前,我正在使用 TreeMap,但复杂性是 log n 仅用于包含、放置、获取和删除。循环遍历元素的复杂度为 n
您是否知道任何结构或有任何想法可以降低低于 n 的复杂性?
【问题讨论】:
-
你怎么可能在少于 n 步的时间内遍历 n 个元素?
-
您确定必须遍历整个内容才能更新其内容吗?更新采用什么形式?这个结构中存储了什么样的数据?
-
不存在任何我熟悉的算法可以将复杂度降低到 n 以下。这是一个我不熟悉的算法,它可能会也可能不会将复杂度降低到 n - en.wikipedia.org/wiki/Grover%27s_algorithm 以下。如果该算法有用,那么也许有人(即不是我)可以实现它。
-
由于显而易见的原因,不可能以比 o(n) 更快的速度循环,除非您可以减少集合中需要更新的元素数量
-
@emory:这似乎需要一台量子计算机。
标签: java loops complexity-theory treemap