import random
import time
a=[]
#随机产生一个大整型数组
for i in range(10001):
a1 = random.randint(1, 100000)
a.append(a1)
start=time.perf_counter()
def Merge(a,low,mid,high):
b=[]
for i in range(len(a)):
b.append(0)
for i in range(low,high+1):
b[i]=a[i]
i=low
j=mid+1
k=i
while(i<=mid and j<=high):
if(b[i]<b[j]):
a[k]=b[i]
k+=1
i+=1
else:
a[k]=b[j]
j+=1
k+=1
while(i<=mid):
a[k]=b[i]
i+=1
k+=1
while (j <= mid):
a[k] = b[j]
j += 1
k += 1
def MergeSort(a,low,high):
if(low<high):
mid = (low + high) // 2
MergeSort(a,low,mid)
MergeSort(a,mid+1,high)
Merge(a,low,mid,high)
MergeSort(a,0,len(a)-1)
end = time.perf_counter()
print(end-start)#输出运行时间
#测试数组过大,所以没有输出排序后的数组
#print(a)
运行结果

长度为10000的数组,python版归并排序的整个运行过程花了6秒多