我试图比较不同排序算法的时间(时间执行)的复杂性。我比较冒泡排序,插入排序,快速排序和融合排序(mergesort)。为什么我的mergesort实现比冒泡排序和插入排序慢?
我知道合并排序和快速排序比其他排序快,但是当我尝试比较这些方法的执行时间时,合并排序总是比其他排序花费更多的时间。我尝试了1000个元素到10,000个元素的列表。谁能告诉我为什么?
这里是我的归并代码:
def inserer(element, ls):
if ls==[]:
return [element]
elif element<= ls[0]:
return [element] + ls
else:
return [ls[0]] + inserer(element, ls[1:len(ls)])
def fusion(L1,L2):
if L1==[]:
return L2
elif L2==[]:
return L1
else:
return fusion(L1[1:len(L1)],inserer(L1[0], L2))
def triFusion (ls):
n=len(ls)
if n==0 or n==1:
return ls
else:
return fusion(triFusion(ls[0:n//2]),triFusion(ls[n//2:n]))