gpt4 book ai didi

python - 如何计算递归函数的时间?

转载 作者:行者123 更新时间:2023-11-30 22:40:59 26 4
gpt4 key购买 nike

我目前正在尝试为合并排序函数计时。唯一的问题是合并排序函数是递归的,每次完成都会返回时间。

我该如何解决这个问题?

def MergeSort(argShuffledList):
dblStart = time.clock()
if len(argShuffledList)>1:
intMidValue = len(argShuffledList)//2
listLeftHalf = argShuffledList[:intMidValue]
listRightHalf = argShuffledList[intMidValue:]

left_part = MergeSort(listLeftHalf)
right_part = MergeSort(listRightHalf)


i=0
j=0
k=0
while i < len(listLeftHalf) and j < len(listRightHalf):

if listLeftHalf[i] < listRightHalf[j]:
argShuffledList[k]=listLeftHalf[i]
i =i+1

else:
argShuffledList[k]=listRightHalf[j]
j=j+1

k=k+1

while i < len(listLeftHalf):
argShuffledList[k]=listLeftHalf[i]
i=i+1
k=k+1


while j < len(listRightHalf):
argShuffledList[k]=listRightHalf[j]
j=j+1
k=k+1


intTime = "%.2f" % ((time.clock() - dblStart) * 1000000)
message = "Elasped Time: " + str(intTime) + " microseconds"
print("Selection Sort: ", argShuffledList)
print(message, "\n")

最佳答案

您是否尝试过将计时移到方法之外?换句话说,开始计时,然后调用你的方法,然后停止计时:

# Start timing
dblStart = time.clock()
# Call method
MergeSort(argShuffledList)
# Stop timing and print results
intTime = "%.2f" % ((time.clock() - dblStart) * 1000000)
message = "Elasped Time: " + str(intTime) + " microseconds"
print(message, "\n")

关于python - 如何计算递归函数的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42703077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com