Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 分析嵌套for循环的运行时_Performance_Algorithm_Time Complexity - Fatal编程技术网

Performance 分析嵌套for循环的运行时

Performance 分析嵌套for循环的运行时,performance,algorithm,time-complexity,Performance,Algorithm,Time Complexity,我在确定这个嵌套for循环是在O(n)还是O(n^2)中运行时遇到了一些问题 假设我有一个表演列表p,每个表演都有一个持续时间(#小时) 这个系统的运行时间是多少?我知道执行的总次数是每次表演中所有小时的总和或O(totalHours),但这是线性的还是多项式的?请记住#小时数可能因演出而异,也可能任意大或小 它与输入的总小时数成线性关系。如果这个数字不能表示为性能数量的函数,那么你就不能将运行时间与性能数量联系起来。我可能会说它是O(mn),其中n是性能数量,m是每次性能的平均小时数(或者,如

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

假设我有一个表演列表p,每个表演都有一个持续时间(#小时)


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

它与输入的总小时数成线性关系。如果这个数字不能表示为性能数量的函数,那么你就不能将运行时间与性能数量联系起来。

我可能会说它是
O(mn)
,其中
n
是性能数量,
m
是每次性能的平均小时数(或者,如你所说,
O(总小时)

总小时数是线性的


因为它不仅取决于性能的数量,我不相信你可以说它是线性的(或者甚至是多项式的)(即使
n
的幂在上面的复杂性中是
1
)(但这里的观点可能会有所不同)。

对,这是有意义的。既然它是
O(mn)
,那么它仍然是
O(cn^2)
的上界,对吗?实际上,
m
n
是独立的,所以我不确定。@1337假日如果任何给定性能的小时数没有上限,
m
可以大于仅
n
的任何函数,因此我们需要在
n
m
两个方面编写1337假日的复杂性:“线性”表示“一次多项式”。所以是的。
P = [P1, P2, ...., Pn]
for p in P:
    for hour in p.hours:
        //do stuff here
    end
end