fork download
  1. arr = [1,5,4,7,6,8,3,2,9]
  2.  
  3. def merge_arrays(_arr_left, _arr_right):
  4. sorted_arr = []
  5. #print _arr_left, _arr_right
  6. left, right = 0, 0
  7.  
  8. #for i in range(0, len(arr)):
  9. while (len(_arr_left) > left) or (len(_arr_right) > right):
  10. if (len(_arr_left) > left) and (len(_arr_right) > right):
  11. if (_arr_left[left] < _arr_right[right]):
  12. sorted_arr.append(_arr_left[left])
  13. left += 1
  14. else:
  15. sorted_arr.append(_arr_right[right])
  16. right += 1
  17. elif (len(_arr_left) > left):
  18. sorted_arr.append(_arr_left[left])
  19. left += 1
  20. else:
  21. sorted_arr.append(_arr_right[right])
  22. right += 1
  23.  
  24. return sorted_arr
  25.  
  26. def merge_sort(_arr):
  27. if (len(_arr) <= 1):
  28. return _arr
  29.  
  30. _arr_left = merge_sort(_arr[:len(_arr)/2])
  31. _arr_right = merge_sort(_arr[(len(_arr)/2):])
  32.  
  33. sorted_arr = merge_arrays(_arr_left, _arr_right)
  34. return sorted_arr
  35.  
  36. #try:
  37. merge = merge_sort(arr)
  38. print merge
  39. #except Exception as e:
  40. # print e
Success #stdin #stdout 0.01s 8968KB
stdin
Standard input is empty
stdout
[1, 2, 3, 4, 5, 6, 7, 8, 9]