arr = [1,5,4,7,6,8,3,2,9]
def merge_arrays(_arr_left, _arr_right):
sorted_arr = []
#print _arr_left, _arr_right
left, right = 0, 0
#for i in range(0, len(arr)):
while (len(_arr_left) > left) or (len(_arr_right) > right):
if (len(_arr_left) > left) and (len(_arr_right) > right):
if (_arr_left[left] < _arr_right[right]):
sorted_arr.append(_arr_left[left])
left += 1
else:
sorted_arr.append(_arr_right[right])
right += 1
elif (len(_arr_left) > left):
sorted_arr.append(_arr_left[left])
left += 1
else:
sorted_arr.append(_arr_right[right])
right += 1
return sorted_arr
def merge_sort(_arr):
if (len(_arr) <= 1):
return _arr
_arr_left = merge_sort(_arr[:len(_arr)/2])
_arr_right = merge_sort(_arr[(len(_arr)/2):])
sorted_arr = merge_arrays(_arr_left, _arr_right)
return sorted_arr
#try:
merge = merge_sort(arr)
print merge
#except Exception as e:
# print e
YXJyID0gWzEsNSw0LDcsNiw4LDMsMiw5XQoKZGVmIG1lcmdlX2FycmF5cyhfYXJyX2xlZnQsIF9hcnJfcmlnaHQpOgoJc29ydGVkX2FyciA9IFtdCgkjcHJpbnQgX2Fycl9sZWZ0LCBfYXJyX3JpZ2h0CglsZWZ0LCByaWdodCA9IDAsIDAKCQoJI2ZvciBpIGluIHJhbmdlKDAsIGxlbihhcnIpKToKCXdoaWxlIChsZW4oX2Fycl9sZWZ0KSA+IGxlZnQpIG9yIChsZW4oX2Fycl9yaWdodCkgPiByaWdodCk6CgkJaWYgKGxlbihfYXJyX2xlZnQpID4gbGVmdCkgYW5kIChsZW4oX2Fycl9yaWdodCkgPiByaWdodCk6CgkJCWlmIChfYXJyX2xlZnRbbGVmdF0gPCBfYXJyX3JpZ2h0W3JpZ2h0XSk6CgkJCQlzb3J0ZWRfYXJyLmFwcGVuZChfYXJyX2xlZnRbbGVmdF0pCgkJCQlsZWZ0ICs9IDEKCQkJZWxzZToKCQkJCXNvcnRlZF9hcnIuYXBwZW5kKF9hcnJfcmlnaHRbcmlnaHRdKQoJCQkJcmlnaHQgKz0gMQoJCWVsaWYgKGxlbihfYXJyX2xlZnQpID4gbGVmdCk6CgkJCXNvcnRlZF9hcnIuYXBwZW5kKF9hcnJfbGVmdFtsZWZ0XSkKCQkJbGVmdCArPSAxCgkJZWxzZToKCQkJc29ydGVkX2Fyci5hcHBlbmQoX2Fycl9yaWdodFtyaWdodF0pCgkJCXJpZ2h0ICs9IDEKCQoJcmV0dXJuIHNvcnRlZF9hcnIKCmRlZiBtZXJnZV9zb3J0KF9hcnIpOgoJaWYgKGxlbihfYXJyKSA8PSAxKToKCQlyZXR1cm4gX2FycgoJCQoJX2Fycl9sZWZ0ID0gbWVyZ2Vfc29ydChfYXJyWzpsZW4oX2FycikvMl0pCglfYXJyX3JpZ2h0ID0gbWVyZ2Vfc29ydChfYXJyWyhsZW4oX2FycikvMik6XSkKCQoJc29ydGVkX2FyciA9ICBtZXJnZV9hcnJheXMoX2Fycl9sZWZ0LCBfYXJyX3JpZ2h0KQoJcmV0dXJuIHNvcnRlZF9hcnIKCQkKI3RyeToKbWVyZ2UgPSBtZXJnZV9zb3J0KGFycikKcHJpbnQgbWVyZ2UKI2V4Y2VwdCBFeGNlcHRpb24gYXMgZToKIwlwcmludCBl