设计求解下列问题的的类C语言算法,并分析其最坏情况时间复杂性及其量级。 (数据结构导论的题目) 大家快来

2024-12-05 09:13:38
推荐回答(1个)
回答1:

(1)
void findEle(int[] a, int n, int key) {
for (int i=0; i if (key == a[i]) {
printf( "%d\n", i+1);
return ;
}
}
printf("0\n");
return;
}
算法的复杂度为: O(n),最坏为n。
(2)
void findMaxMin(int a[], int n, int &max, int &maxNext) {
if (n ==0 || a == 0) return; //输入的数组为空
if (n==1) { max = maxNext = a[0]; return;} //数组的长度为1, max 和maxNext 都设为a[0]

if (a[1] > a[0] ) { max = a[1]; maxNext=a[0];}
else { max = a[0]; maxNext = a[1];}

for(int i=2; i if (a[i] > max) {maxNext= max; max = a[i]; } //-----a
else if (a[i] > maxNext) { maxNext = a[i];}
}
return;
}

算法的复杂度: O(n). 最坏情况: 2n (当输入的数组是一个排好序的升序的数组时,循环的每一步都要执行语句a进行数据交换。