复习复习,温故而知新
什么是归并排序
归并排序是建立在归并操作上的稳定、有效的排序方法,速度仅次于快速排序。该排序法采用的分治法的思想,将对于一组数据的排序分成三步:分解、解决、合并。
怎么实现
1、先将数组分解,直到无法分解为止(长度为1)。
2、排序,然后合并。
3、排序,然后合并。
。
。
。
。
n、OK,输出
附上Python的代码
代码
numbers=[4,5,1,21,66,6,7,9,15,44,60,16,3,77,51,13,99,52]
def con(left,right):
global numbers
m=(right+left)//2
if right-left>1:
con(left,m)
con(m+1,right)
a=left
b=right
c=m+1
end=[]
while c<=right and a<=m:
if numbers[a]<=numbers[c]:
end.append(numbers[a])
a+=1
elif numbers[a]>numbers[c]:
end.append(numbers[c])
c+=1
if c>right:
for i in range(a,m+1):
end.append(numbers[i])
elif a>m:
for i in range(c,right+1):
end.append(numbers[i])
for i in range(left,right+1):
numbers[i]=end[i-left]
con(0,len(numbers)-1)
print(numbers)
制图不易,有帮助的话点个赞支持一下吧