需要有关Big O表示法的信息

时间:2015-01-14 18:28:25

标签: notation

对你来说是个随机的问题。如果你有一个方法必须检查数组中的每个单独的位置,是否可以说这个方法有O(n)的符号?

我不确定我的答案是否正确的原因是由于我知道O(n)与数组中保存的项目数有关,而我的假设是基于数组的实际大小?

1 个答案:

答案 0 :(得分:0)

如果您的算法必须查看数组中的每个项目,则该算法为O(n)。如果数组是否已满并不重要,因为您可以灵活地定义n。它可以是数组的大小,也可以是数组中非null元素的数量。如果您的算法必须查看空数组槽以查看它们是否为空,请使用大小。 (如果这是一个真正的性能问题,可能需要调用不同的数据结构。)

对于一个非常人为的例子,如果需要一个小时来处理每个非null数组元素,但是要检查null为1纳秒,那么你应该将n定义为实际存在的元素数,因为这是什么指示算法如何缩放。