您的位置:首页 > 编程语言 > Python开发

归并排序(python实现)

2011-12-16 16:05 260 查看
def mergesort(L):
print L
if len(L)<2:
return L[:]
else:
middle=len(L)/2
left=mergesort(L[:middle])
right=mergesort(L[middle:])
together=merge(left,right)
print 'left' ,left
print 'right',right
print 'merge',together
return together

def merge(left,right):
result=[]
i,j=0,0
while i<len(left) and j<len(right):
if left[i]<=right[j]:
result.append(left[i])
i=i+1
else:
result.append(right[j])
j=j+1
while (i<len(left)):
result.append(left[i])
i=i+1
while (j<len(right)):
result.append(right[j])
j=j+1
return result


最近在看MIT的计算机科学与编程导论,这是其中的一个小例子,中午照着代码调试了好久,才知道是如何运行的。哎,真失败!

坚持就是胜利!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: