数据结构与算法Python版-第二周测验

1单选(2分)
判断下列代码段的大O级别:

test = 0
for i in range(n):
    for j in range(n):
        test = test + i * j

A. O(n^2)
B. O(n^3)
C. O(n)
D. O(n*log(n))
正确答案:A

2单选(2分)
判断下列代码段的大O级别:

test = 0
for i in range(n):
    test = test + 1
for j in range(n):
    test = test - 1

A. O(n^3)
B. O(n^2)
C. O(n*log(n))
D. O(n)
正确答案:D

3单选(2分)
判断下列代码段的大O级别:

for i in range(n):
    k = 2 + 2

A. O(n^3)
B. O(n^2)
C. O(n)
D. O(1)
正确答案:C

4单选(2分)
判断下列代码段的大O级别:

def function(n):
    return n+2

A. O(n)
B. O(1)
C. O(n^2)
D. O(n^3)
正确答案:B

5单选(2分)
以下是一个快速幂算法:

def pow(x, n):
   if n==0:
       return 1
   elif n==1:
       return x
   elif n%2==0:
       return pow(x*x, n//2)
   else:
       return pow(x*x, n//2)*x

问它对于n的大O级别。
A. O(n)
B. O(log n)
C. O(nlog n)
D. O(1)
正确答案:B

6多选(3分)
下面的列表操作中哪些是O(1)的?
A. list[10]
B. list.append(10)
C. list.pop()
D. list.pop(0)
正确答案:A、B、C

7多选(3分)
下面的字典操作中哪些是O(1)的?
A. del my_dict[’’]
B. ‘’ in my_dict
C. my_dict[’’] += 1
D. my_dict[’’] == 10
正确答案:A、B、C、D

8多选(3分)
令n为问题规模,其中解决本问题的三个算法称为A,B,C,他们需要的总运算次数分别是:
A: 96+108n+24n2+12n3
B: 16n+48n^3
C: 10080+168n+7n^2*log(n)

三个算法的时间复杂度的大O级别中,以下表述正确的有:

得分/总分

A. C算法的时间复杂度最小
B. B算法比A算法的时间复杂度更大
C. A算法比B算法的时间复杂度更大
D. A算法和B算法的时间复杂度相同
正确答案:A、D

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值