Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.50 KB | None | 0 0
  1. def merge(left, right):
  2.     output = []
  3.     il, ir = 0, 0
  4.     while il < len(left) and ir < len(right):
  5.         if left[il] < right[ir]:
  6.             output.append(left[il])
  7.             il += 1
  8.         else:
  9.             output.append(right[ir])
  10.             ir += 1
  11.     if left[il:]:
  12.         output.extend(left[il:])
  13.     if right[ir:]:
  14.         output.extend(right[ir:])
  15.     return output
  16.  
  17. def mergeSort(A, k, alg):
  18.     if len(A) <= k:
  19.         return alg(A)
  20.     middle = len(A) // 2
  21.     left = mergeSort(A[:middle], k, alg)
  22.     right = mergeSort(A[middle:], k, alg)
  23.     return merge(left, right)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement