我試圖比較不同排序算法的時間(時間執行)的複雜性。我比較冒泡排序,插入排序,快速排序和融合排序(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]))