小班课文档

2026-03-16 算法复杂度分析

第一次课课后练习

单项选择题

  1. 判断下列代码段的大O级别:
test = 0
for i in range(n):
    for j in range(n):
        for k in range(i):
            test = test + i * j

  1. 判断下列代码段的大O级别:
test = 0
for i in range(n):
    test = test + 1
for j in range(n):
    test = test - 1
for k in range(n):
    test = test * 1

  1. 判断下列代码段的大O级别:
for i in range(n):
    for j in range(i):
        k = 2 + 2

  1. 判断下列代码段的大O级别:
def function(n):
    return 2

  1. 快速幂算法:
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级别。


多项选择题

  1. 下面的列表操作中哪些是O(1)的?

  1. 下面的字典操作中哪些是O(1)的?

  1. 三个算法总运算次数:
  • A: 96+108n+24n²+12n³
  • B: 16+3n⁴⁸
  • C: 10080+168n+7n²*log(n)

以下表述正确的有:


On this page