diff --git a/tp9/merge_sort.py b/tp9/merge_sort.py index 4e88e30ddd568df09986d41da2701066690fd88f..ea1fb8f728c5af428d1fd6af3b2150e1d83752c4 100644 --- a/tp9/merge_sort.py +++ b/tp9/merge_sort.py @@ -214,7 +214,17 @@ def mergesort(l: ApLst, comp: Callable[[T, T], int]=compare) -> ApLst: $$$ is_sorted(l1) True """ - pass + if not l.is_empty(): + l1, l2 = split(l) + for i in range(length(l)): + a = l1.head() + l1 = l1.tail() + b = l1.head() + for k in range(length(l)-1): + if compare(a, b) != -1: + l1 = l1.tail() + l1 = ApLst(b, ApLst(a, l1)) + l1 = l1.tail() if (__name__ == '__main__'):