function merge_sort(items):

 if length(items) <= 1:
 return items
 left, right = split items in half
 left = merge_sort(left)
 right = merge_sort(right)
 return merge_in_order(left, right)
