Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def merge(left, right):
- output = []
- il, ir = 0, 0
- while il < len(left) and ir < len(right):
- if left[il] < right[ir]:
- output.append(left[il])
- il += 1
- else:
- output.append(right[ir])
- ir += 1
- if left[il:]:
- output.extend(left[il:])
- if right[ir:]:
- output.extend(right[ir:])
- return output
- def mergeSort(A, k, alg):
- if len(A) <= k:
- return alg(A)
- middle = len(A) // 2
- left = mergeSort(A[:middle], k, alg)
- right = mergeSort(A[middle:], k, alg)
- return merge(left, right)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement