performance - 分析嵌套for循环的运行时间

标签 performance algorithm time-complexity

我在确定这个嵌套 for 循环是在 O(n) 还是 O(n^2) 中运行时遇到了一些问题。

假设我有一个表演列表 P,每个表演都有一个持续时间(小时数)。

P = [P1, P2, ...., Pn]
for p in P:
    for hour in p.hours:
        //do stuff here
    end
end

这将被视为运行时间是多少?我知道执行的总数是每次表演中所有小时数的总和或 O(totalHours) 但这是线性的还是多项式的?请记住,小时数因性能而异,可以任意大或小。

最佳答案

我可能会说它是 O(mn),其中 n 是表演次数,m 是平均小时数每次表演(或者,如您所说,O(totalHours))。

它与总小时数呈线性关系。

因为它不仅取决于性能的数量,我不相信你可以说它是线性的(甚至多项式,就此而言)(即使 n 的幂是1 在上面的复杂性中)(但意见可能会有所不同)。

关于performance - 分析嵌套for循环的运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24071711/

相关文章:

java - 在许多 GetHashCode 实现中,为什么在 xoring 之前乘以质数?

python - 为什么我的第二种方法比第一种方法慢?

algorithm - 阶乘时间复杂度算法是否需要递归或堆栈?

python - 如何实现__delitem__方法?

java - Java 中的分析是否会带来性能问题?

JavaScript 性能预热

c++ - 生成伪随机位的快速方法,每个位的给定概率为 0 或 1

python - 性能:Python pandas DataFrame.to_csv append 逐渐变慢

c - 组成最小的数

java - 带有嵌套for循环的java代码的复杂性