简单的线性搜索,找到最大最小算法
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元素的第一个if条件失败 2.如果第一个ccondition失败1/2倍plz xplain,则上述算法的平均复杂度
答案 0 :(得分:0)
两种情况的平均案例复杂度为O(n)。如果k是第一个if失败的次数,那么比较次数是2 * n - 2 - k。
maxmin(a,n,max,min){
max=min=a[1];
for i=2 to n do{ // goes through the loop n-1 times
if a[i]>max then max:=a[i]; // out of n-1 times succeeds k times and fails n-1-k times
else if a[i]<min then min:=a[i]; // runs this n-1-k times
}
}
n-1 + n-1-k - &gt; 2 * n - 2 - k