-
如下算法中问题规模为n,分析其平均时间复杂度。
int fact(int a[],int n,int x) { int i=0; while(i<n) { if(a[i]==x) return i; i++; } return -1; }
参考答案
1) 成功找到x:T(n)=1+2+3+....+n=
= (1+n)n/2
x在每个位置出现的概率相等为1/n,则平均时间复杂度为: T(n)=1/n*(1+n)n/2=(1+n)/2=O(n) 2)找不到x,T(n)=n=O(n) ,故时间复杂度为O(n)。
-
算法分析的目的是______ 答案为:分析算法的效率以求改进
-
栈和队列的共同点是______ 答案为:只允许在端点处插入和删除元素
-
数据结构在计算机内存中的表示是指________ 答案为:数据的存储结构
-
栈和队列是两种不同的数据结构,但它们中的元素具有相同的________ 答案为:逻辑结构
-
一种抽象数据类型包括______________和_____________两个部分。 参考答案:数据描述,操作声明
-
数据结构是指数据及其相互之间的______________。当结点之间存在M对N(M:N)的联系时,称这种结构为_____________
参考答案:联系,图(或图结构)
-
通常从四个方面评价算法的质量:_________、________、______和_________。
参考答案:正确性 易读性 强壮性 高效率