performance - 如何为这个问题实现这个 O(1) 算法?

标签 performance algorithm big-o

我有变量x,还有函数f1(x), f2(x), .... fn(x)(n可以达到100万)。这些函数的值都是1或0。那么,如何编写算法,可以快速提取返回1的函数呢?谢谢。

在这里我展示我的。时间复杂度为O(n),效率不够。

List funHaveTrueValues = new ArrayList();

for (int i=1; i<=n; ++i){
 if (fi(x)==true){
   funHaveTrueValues.add(fi);
  }
 }
}

有人可以提出 O(1) 算法吗?谢谢!

最佳答案

除非您对函数的了解比您告诉我们的多一点,否则不可能有 O(1) 算法。您必须至少查看每个函数的输出一次,使该问题的每个算法都在 Ω(n) 中运行。

关于performance - 如何为这个问题实现这个 O(1) 算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7007882/

相关文章:

algorithm - 什么构成指数时间复杂度?

performance - R 与 Matlab : Explanation for speed difference for rnorm, qnorm 和 pnorm 函数

performance - 配置单元分析查询花费大量时间

algorithm - 证明大 O 符号

algorithm - 为表示为 ROBDD 数组的函数计算一组图像

java - 我应该如何改进DFS Java实现来解决这个问题?

algorithm - Big-o 复杂度问题 - 线性累积幂

performance - 为什么list++需要扫描list左边的所有元素?

c# - 如果只需要读取一次,则在查找后从 C# 字典中删除项目的任何性能优势

c - 这是什么排序算法?