Topics: String and List Examples, Analyzing Complexity, Search: indirection, linear search, bisection search
Lecture Notes
Lecture 23: Complexity Classes Examples
Readings
Ch 12.1
Finger Exercise Lecture 23
Question 1: Choose the worst case asymptotic order of growth (upper and lower bound) for the following function. Assume n = a
.
def running_product(a):
""" a is an int """
product = 1
for i in range(5,a+5):
product *= i
if product == a:
return True
return False
Question 2: Choose the worst case asymptotic order of growth (upper and lower bound) for the following function. Assume n = len(L)
.
def tricky_f(L, L2):
""" L and L2 are lists of equal length """
inL = False
for e1 in L:
if e1 in L2:
inL = True
inL2 = False
for e2 in L2:
if e2 in L:
inL2 = True
return inL and inL2
Question 3: Choose the worst-case asymptotic order of growth (upper and lower bound) for the following function.
def sum_f(n):
""" n > 0 """
answer = 0
while n > 0:
answer += n%10
n = int(n/10)
return answer
6.100L Finger Exercises Lecture 23 Solutions
Recitation 10
Recitations were smaller sections that reviewed the previous lectures. Files contain recitation notes and worked examples in code.