"""
sort()中使用的就是这种排序,将排序两两分组
例如16个数,先 8 8分,8再分4 4 4再分2 2 ,此时2开始排序,再2 2 合并到4 ,然后4 4 排序,最后归并
"""
def merch_sort(li,low,mid,high):
i=low
j=mid+1
ltmp=[]
while i<=mid and j<=high:
if li[i]<=li[j]:
ltmp.append(li[i])
i+=1
else:
ltmp.append(li[j])
j+=1
while i<=mid:
ltmp.append(li[i])
i+=1
while j<=high:
ltmp.append(li[j])
j+=1
li[low:high+1]=ltmp
return li
def mergesort(li,low,high):
if low<high:
mid=(low+high)//2
mergesort(li,low,mid)
mergesort(li,mid+1,high)
merch_sort(li,low,mid,high)
li=[1,6486,46,1651,65,165,15,132148,746,43,135,1,53]
print(mergesort(li,0,len(li)-1))
print(li)