【发布时间】:2017-07-25 07:40:21
【问题描述】:
我正在使用的代码如下。
我想在这段代码中添加一个比较计数器,但我现在拥有的那个将显示与元素数量相同的数字。
def MergeSort(argShuffledList):
intNumOfComp = 0
if len(argShuffledList)>1:
intMidValue = len(argShuffledList)//2
listLeftHalf = argShuffledList[:intMidValue]
listRightHalf = argShuffledList[intMidValue:]
MergeSort(listLeftHalf)
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
intNumOfComp += 1
else:
argShuffledList[k]=listRightHalf[j]
j=j+1
intNumOfComp += 1
k=k+1
while i < len(listLeftHalf):
argShuffledList[k]=listLeftHalf[i]
i=i+1
k=k+1
intNumOfComp += 1
while j < len(listRightHalf):
argShuffledList[k]=listRightHalf[j]
j=j+1
k=k+1
intNumOfComp += 1
return argShuffledList, "Comparison Count: " + str(intNumOfComp)
【问题讨论】:
标签: python algorithm sorting merge comparison