归并排序 @ Python
def merge_sort(A):
length = len(A)
if length <= 1:
return A
else:
result = []
left = merge_sort(A[:length / 2])
right = merge_sort(A[length / 2:])
i = 0
j = 0
l_length = len(left)
r_length = len(right)
# 合并的过程
while i < r_length and j < l_length:
if left[0] <= right[0]:
result.append(left[0])
left.pop(0)
i += 1
else:
result.append((right[0]))
right.pop(0)
j += 1
return result + left + right
print merge_sort([98, 111, 23, 12, 3434, 1211, 1, 21])