设计求解下列问题的算法,并分析其最坏情况的时间复杂度及其量级。

设计求解下列问题的算法,并分析其最坏情况的时间复杂度及其量级。数据结构:设计求解下列问题的算法,并分析其最坏情况的时间复杂度及其量级。
(1)在数组A[1..n]中查找值为K的元素,若找到则输出其位置i(1<=i<=n),否则输出0作为标志。
(2)找出数组A[1..n]中元素的最大值和次最大值(本小题以数组元素的比较为标准操作)

intlocate(dataytpeA[1..n],dateytpek)
{i=n;
while((I<=n)&&(A[i]!=k))I++;
if(I<=n)return(i);
elsereturn(o);}
当查找不成功时,总是比较n+1次,所以,最坏时间复杂性为n+1。其量T(n)=O(n).
(2)VoidCZ_max(datatypeA[n],x,y)
{x=A[1];y=A[1];
for(I=2;I<=n;I++)
if(x<A[i]
{y=x;x=A[i];}
elseif(y<A[i]y=A[i];
}
若经条件判断语句为标准操作,则最坏情况时间复杂度为n-1,其量级为T(n)=O(n)
温馨提示:答案为网友推荐,仅供参考
相似回答