判断题
1.用渐进表示法分析算法复杂度的增长趋势。
T F
2.N2/1000是O(N)的。
T F
3.将长度分别为m,n的两个单链表合并为一个单链表的时间复杂度为O(m+n)。
T F
4.对于某些算法,随着问题规模的扩大,所花的时间不一定单调增加。
T F
5.用渐进表示法分析算法复杂度的增长趋势。
T F
6.N2logN和NlogN2具有相同的增长速度。
T F
7.(logN)2是O(N)的。
T F
8.算法分析的两个主要方面是时间复杂度和空间复杂度的分析。
T F
选择题
1.下列函数中,哪两个函数具有相同的增长速度:
A.2
N和N
N
B.N和2/N
C.N 2logN和NlogN 2
D.NlogN 2和NlogN
B.N和2/N
C.N 2logN和NlogN 2
D.NlogN 2和NlogN
2.在数据结构中,从逻辑上可以把数据结构分成( )。
A.动态结构和静态结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
3.与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。
A.存储结构
B.存储实现
C.逻辑结构
D.运算实现
B.存储实现
C.逻辑结构
D.运算实现
4.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着( )。
A.数据在同一范围内取值
B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
5.给定N×N的二维数组A,则在不改变数组的前提下,查找最大元素的时间复杂度是:
A.O(N
2)
B.O(NlogN)
C.O(N)
D.O(N 2logN)
B.O(NlogN)
C.O(N)
D.O(N 2logN)
6.下列代码
for(i=0; i0; j/=2)
printf(“%d\n”, j);
的时间复杂度是:
A.O(N×i)
B.O(N)
C.O(N 2)
D.O(NlogN)
B.O(N)
C.O(N 2)
D.O(NlogN)
7.斐波那契数列FN的定义为:F0=0, F1=1, FN=FN−1+FN−2, N=2, 3, …。用递归函数计算FN的时间复杂度是:
A.O(logN)
B.O(N)
C.O(N!)
D.O(F N)
B.O(N)
C.O(N!)
D.O(F N)
8.对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度为:
A.O(1), O(1)
B.O(1), O(N)
C.O(N), O(1)
D.O(N), O(N)
B.O(1), O(N)
C.O(N), O(1)
D.O(N), O(N)
9.下列代码
if ( A > B ) {
for ( i=0; ii; j-- )
A += B;
}
else {
for ( i=0; ii; j-- )
A += B;
}
的时间复杂度是:
A.O(N
3)
B.O(N 4)
C.O(N 5)
D.O(N 6)
B.O(N 4)
C.O(N 5)
D.O(N 6)