Big o 不执行时的时间复杂性

Big o 不执行时的时间复杂性,big-o,time-complexity,Big O,Time Complexity,以下程序段的“最佳情况”时间复杂度是多少 n=0 sum=0 input(x) while x!=-999 do n=n+1 sum=sum+x input(x) end {while} mean=sum/n 当用户第一次键入“-999”时,最好的情况可能是O1 注:当用户第一次键入-999时,平均值将为0/0,函数结果未定义算法的复杂性通常是根据某种数据定义的。它可以是输入数据,就像您的情况一样 想象一下,数据不是手动输入的,而是在应用程序中以数组形式提供的。那么复杂性会是什么呢

以下程序段的“最佳情况”时间复杂度是多少

n=0
sum=0
input(x)
while x!=-999 do
  n=n+1
  sum=sum+x
  input(x)
end {while}
mean=sum/n
当用户第一次键入“-999”时,最好的情况可能是O1
注:当用户第一次键入-999时,平均值将为0/0,函数结果未定义

算法的复杂性通常是根据某种数据定义的。它可以是输入数据,就像您的情况一样

想象一下,数据不是手动输入的,而是在应用程序中以数组形式提供的。那么复杂性会是什么呢


在这种情况下,处理的数字量为N,循环每N运行一次,因此您可以假设复杂性为开。

最坏的情况是无穷大,这意味着该程序永远不会停止。我甚至不会称之为算法,因为算法的某些定义需要有限的输入集,而另一些定义要求它在给定数量的计算步骤之前终止


这意味着O在这里不适用。

这不是Java,听起来很像家庭作业?要谈论ON,你需要定义N…你说过:最坏的情况是无穷大,这意味着这个程序永远不会停止。那么,如果用户第一次键入999,那么最好的情况是什么呢?如果复杂度术语可以用于这个问题,那么不管数据如何,复杂度都是开启的!如果N=0,那么ON=O0=0,但它仍然是开的。如果算法中存在一些条件,则可以应用最坏情况/最佳情况-在这种情况下,没有条件,只有数据量。