算法分析真题

算法如下:void max(数据类型a [],数据类型m,数据类型sm)//数据类型是C语言的标准数据类型{ int I;m = sm = A[1];//m存储最大值,sm存储第二大值for(I = 2;I < = n;++ I)if(A[I]> m){ sm = m;m = A[I];} else if(A[I]> sm)sm = A[I];}为了得到最大值和次大值,必须经过n-1个循环,所以时间复杂度最差是n-1,也就是O(n)。