首先构造两组有序数列,对两组有序数列进行排序
1、构造两组有序数列
通过递归的方法,将一组数不断二分知道只有一个元素,这一个元素可以看成有序的
2、对两组有序数列排序
从前到后比大小
#对两组有序数列排序
def mergeArray(ary,left,mid,right):
i=left
j=mid+1
temp=[]
while i<=mid and j<=right:
if ary[i]<=ary[j]:
temp.append(ary[i])
i+=1
else:
temp.append(ary[j])
j+=1
while i<=mid:
temp.append(ary[i])
i+=1
while j<=right:
temp.append(ary[j])
j+=1
for i in range (len(temp)):
ary[left+i]=temp[i]
#构造有序数列
def mergeSort(ary,left,right):
if (left<right):
mid=int((right+left)/2)
mergeSort(ary,left,mid)
mergeSort(ary,mid+1,right)
mergeArray(ary,left,mid,right)
array=[7,7,4,1,10,6,3,65,8,9,20,15]
mergeSort(array,0,len(array)-1)