设计求解下列问题的类C语言算法,并分析其最坏情况时间复杂度及其量级。
(1)在数组A[1..n]中查找值为k的元素,若找到则输出其位置i(1≤i≤n),否则输出0作为标志。
(2)找出数组A[1..n]中元素的最大值和次最大值(本小题以数组元素的比较为标准操作)。
设计求解下列问题的类C语言算法,并分析其最坏情况时间复杂度及其量级。
(1)在数组A[1..n]中查找值为k的元素,若找到则输出其位置i(1≤i≤n),否则输出0作为标志。
(2)找出数组A[1..n]中元素的最大值和次最大值(本小题以数组元素的比较为标准操作)。
【正确答案】:(1)int locate(Data Type AEn],Data Type k) {int i=1; while((i<=n)&&(A[i]!=k))i++; if(i<=n)return(i); else return(O); } 当查找不成功时,总是比较n次,所以,最坏时间复杂度为n。其量级T(n)=O(n)。 (2)void CZ_max(Data Type A[n],Data Type x,Data Type y) {x=A =[1];y=A[1]; for(int i=2;i<=n;i++) if(x
Top