#coding=utf-8
#author='HL'
def Merge(nums):
if(len(nums)<=2):
if len(nums)<=1 or nums[0]<nums[1]:
return nums
else:
return nums[::-1]
mid = len(nums)/2
left = Merge(nums[:mid])
right = Merge(nums[mid:])
return MergePass(left,right)
def MergePass(left,right):
out = []
i = 0
j = 0
while i<len(left) and j<len(right):
if left[i]<right[j]:
out.append(left[i])
i+=1
else:
out.append(right[j])
j+=1
if left[i:]:
out.extend(left[i:])
return out
if right[j:]:
out.extend(right[j:])
return out
return out
print Merge([6,5,4,3,2,1])
归并排序
最新推荐文章于 2022-06-22 22:18:41 发布