**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.