这个函数的第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]
答案 0 :(得分:0)
假设数组未排序(否则见下文):
是O(n)因为:
您必须至少查看一次数组的每个条目,否则您未查看的条目可能会更小
您必须最多查看一次的每个条目,因为您永远不会忘记当前的最低条件。
数组是直接访问(无寻道时间)
如果对数组进行排序,那么找到最小值只是取第一个条目,即O(1)。但是如果你只需要最少一次(而不是反复获取和删除min),那么排序数组是不值得的,因为排序需要O(n * log(n))