算法复杂度-CSP-普及组-练习
1
斐波那契数列的定义如下:F1 = 1, F2 = 1, Fn = Fn – 1 + Fn – 2 (n ≥ 3)。如果用下面的函数计 算斐波那契数列的第 n 项,则其时间复杂度为( )。
int F(int n)
{
if (n <= 2)
return 1;
else
return F(n - 1) + F(n - 2);
}
A. O(1)
B. O(n)
C. O(n2)
D. O(Fn)
2
斐波那契数列的定义如下:F1 = 1, F2 = 1, Fn = Fn – 1 + Fn – 2 (n ≥ 3)。如果用下面的函数计 算斐波那契数列的第 n 项,则其时间复杂度为( )。
int F(int n)
{
if (n <= 2)
return 1;
else
return F(n - 1) + F(n - 2);
}
A. O(1)
B. O(2^n)
C. O(n^2)
D. O(n*logn)
3
( )的平均时间复杂度为 O(nlogn),其中 n 是待排序的元素个数
A 快速排序
B 插入排序
C 冒泡排序
D 基数排序
4
快速排序最坏情况下的算法时间复杂度为:
A O(\(log_2n\))
B O(n)
C O(\(nlog_2n\))
D O(\(n^2\))
5
快速排序平均情况和最坏情况下的算法时间复杂度分别为:
A 平均情况 O(\(nlog_2n\)),最坏情况 O(\(n^2\))
B 平均情况 O(n),最坏情况 O(\(n^2\))
C 平均情况 O(n),最坏情况 O(\(nlog2^n\))
D 平均情况 O(\(log_2n\)), 最坏情况 O(\(n^2\))
6
基于比较的排序时间复杂度的下限是( ),其中 n 表示待排序的元素个数。
A Θ(n)
B Θ(\(nlogn\))
C Θ(\(logn\))
D Θ(\(n^2\))
7
在含有 n 个元素的双向链表中查询是否存在关键字为 k 的元素,最快情况下运行的时间复杂度是( )。
A O(1)
B O(\(logn\))
C O(n)
D O(\(nlogn\))
8
应用快速排序的分治思想,可以实现一个求第 K 大数的程序。假定不考虑极端的最坏情况,理论上可以实现的最低的算法时间复杂度为( )。
A O(n2)
B O(nlogn)
C O(n)
D O(1)
9
如果不在快速排序中引入随机化,有可能导致的后果是( )。
A 数组访问越界
B 陷入死循环
C 排序结果错误
D 排序时间退化为平方级
11
如果对于所有规模为 n 的输入,一个算法均恰好进行( )次运算,我们可以说该算法的时间复杂度为 O(2n)。
A \(2^{n+1}\)
B \(3^n\)
C \(n×2^n\)
D \(2^{2n}\)
12
以下时间复杂度不是 O(\(n^2\)) 的排序方法是( ).
A 插入排序
B 归并排序
C 冒泡排序
D 选择排序
13
某算法的计算时间表示为递推关系式T(n)=T(n−1)+n(n 为正整数)及 T(0)=1,则该算法的时间复杂度为( )。
A O(\(logn\))
B O(\(nlogn\))
C O(\(n\))
D O(\(n^2\))
14
具有 n 个顶点,e 条边的图采用邻接表存储结构,进行深度优先遍历和广度优先遍历运算的时间复杂度均为( )。
A Θ(\(n^2\))
B Θ(\(e^2\))
C Θ(\(ne\))
D Θ(\(n+e\))
15
假设某算法的计算时间表示为递推关系式 \(T(n)=2T(4n)+ \sqrt{n}\)
T(1)=1
则算法的时间复杂度为( )。
A O(n)
B O(\(\sqrt{n}\))
C O(\(\sqrt{n}logn\))
D O\((n^2\))
16
若某算法的计算时间表示为递推关系式:
\(T(N)=2T(N/2)+NlogN\)
\(T(1)=1\)
则该算法的时间复杂度为( )。
A O(\(N\))
B O(\(NlogN\))
C O(\(Nlog^2N\))
D O(\(N^2\))
17
以下排序算法在最坏情况下时间复杂度最优的有( )。
A 冒泡排序
B 快速排序
C 归并排序
D 堆排
作者:newcode 更多资源请关注纽扣编程微信公众号

从事机器人比赛、机器人等级考试、少儿scratch编程、信息学奥赛等研究学习

浙公网安备 33010602011771号