0
我正在使用的代码如下。如何在python中添加合并排序的比较计数器?
我想添加一个比较计数器到这个代码,但我现在有一个将显示与元素数相同的数字。
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)