简单的线性搜索即可找到最大最小算法
maxmin(a,n,max,min)
{
max=min=a[1];
for i=2 to n do
{
if a[i]>max then
max:=a[i];
else if a[i]<min then
min:=a[i];
}
}
1。假设n / 2个元素的第一个条件失败,则上述算法的平均情况复杂度
给出了答案
n-(n / 2)-1(如果成功则首先获得的元素数)+ 2 *(n / 2)(如果失败则首先获得的元素数) = 3n / 2 -1
这是正确的吗?但是,如果失败,为什么我们要乘以2?
答案 0 :(得分:1)
这是O(n)。 if
语句和可能的赋值为O(1),因此它们不会影响big-O分类(尽管它们确实在一定程度上影响运行时)。
考虑该问题的另一种方法是,如果将N加倍,则运行时将精确地翻倍。
答案 1 :(得分:0)
线性搜索将是最坏的情况,O(n),最好的情况是O(1)