CS111 – Fundamentals of CS�Lecture 13�Python IV�
Reading for this & last lectures
2
Lecture 10 Outline
3
Remember
4
5
1. Merge Sort
Base Case
6
Divide
Conquer
1. Merge Sort
def merge_sort (lst):
length = len(lst)
if length == 1:
return lst
else:
half1 = lst[:length//2]
half2 = lst[length//2:]
return (merge (merge_sort(half1),\
merge_sort(half2)))
1. Merge Function
def merge(lst1, lst2):
i, j = 0, 0
result = []
while i < len(lst1) and j < len(lst2):
next = lst1[i] if lst1[i] < \
lst2[j] else lst2[j]
result.append(next)
(i,j) = (i + 1, j) if lst1[i] < \
lst2[j] else (i, j + 1)
result.extend(lst1[i:])
result.extend(lst2[j:])
return result
9
2. Ternary Operator
next = lst1[i] \
if lst1[i] < lst2[j] \
else lst2[j]
if lst1[i] < lst2[j]:
next = lst1[i]
else:
next = lst2[j]
10
2. Ternary Operator
valu1 if condition else value2
else "odd"
11
12
3. Tuples
3. Tuples
15
4. Lists
4. List Functions