MINIMUM功能运行第4行的平均时间是多少?

时间:2015-02-25 05:01:23

标签: algorithm data-structures

这个函数的第4行平均运行多少? O(logn)或O(n)

Minimum(A,n)
1. min= +inf
2. for i:1 to n
3.  do if min>A[i]
4.    then min=A[i]

1 个答案:

答案 0 :(得分:0)

假设数组未排序(否则见下文):

是O(n)因为:

  • 您必须至少查看一次数组的每个条目,否则您未查看的条目可能会更小

  • 您必须最多查看一次的每个条目,因为您永远不会忘记当前的最低条件。

  • 数组是直接访问(无寻道时间)

如果对数组进行排序,那么找到最小值只是取第一个条目,即O(1)。但是如果你只需要最少一次(而不是反复获取和删除min),那么排序数组是不值得的,因为排序需要O(n * log(n))