# ugp2_code
#Problem 1
def mergesort(alist):
if len(alist) == 1:
return alist
mid = len(alist) // 2
left_alist = mergesort(alist[:mid])
right_alist = mergesort(alist[mid:])
i = 0
j = 0
result = []
# conbine
while(i < len(left_alist) and j < len(right_alist)):
if left_alist[i][0] <= right_alist[j][0]:
result.append(left_alist[i])
i += 1
else:
result.append(right_alist[j])
j += 1
result += left_alist[i:]
result += right_alist[j:]
return result
A = [(30, 1), (10, 2), (40, 3), (60, 4), (20, 5)]
print(A)
A_sorted = mergesort(A)
print(A_sorted) # [(10, 2), (20, 5), (30, 1), (40, 3), (60, 4)]