python第二周小测验答案_数据结构与算法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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值