Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 3rd, 2012  |  syntax: None  |  size: 0.45 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. def merge_sort(array):
  2.     if len(array) < 2:
  3.         return array
  4.     l = len(array) // 2
  5.     left, right = array[:l], array[l:]
  6.     return combine(merge_sort(left), merge_sort(right))
  7.  
  8. def combine(left, right):
  9.     l, r = 0, 0
  10.     c = []
  11.     while l < len(left) and r < len(right):
  12.         if left[l] <= right [r]:
  13.             c.append(left[l])
  14.             l += 1
  15.         else:
  16.             c.append(right[r])
  17.             r += 1
  18.     return c+left[l:]+right[r:]