【发布时间】:2014-12-04 03:11:51
【问题描述】:
我试图比较不同排序算法的时间复杂度(时间执行)。我在比较冒泡排序、插入排序、快速排序和融合排序(mergesort)。
我知道归并排序和快速排序比其他排序更快,但是当我尝试比较这些方法的执行时间时,归并排序总是比其他所有方法花费更多的时间。我尝试使用 1,000 到 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]))
【问题讨论】:
标签: sorting time-complexity mergesort