Python通过合并排序计算反转得到错误
我试图用Python计算长文本文件中的反转数。我一直在使用Python通过合并排序计算反转得到错误,python,python-2.7,sorting,mergesort,inversion,Python,Python 2.7,Sorting,Mergesort,Inversion,我试图用Python计算长文本文件中的反转数。我一直在使用left=sortCount(alist,len1,I) 导入csv def合并计数(列表、i、len1、len2): 打印(“合并”) inv=0 温度=[] index1=i index2=i+len1 当index1
left=sortCount(alist,len1,I)
导入csv
def合并计数(列表、i、len1、len2):
打印(“合并”)
inv=0
温度=[]
index1=i
index2=i+len1
当index1如果当len1
变为zero
时,alist[index1],则您不断地调用left=sortCount(alist,0,i)
如果len1==0
返回0
if len1==0:
return 0
left = sortCount(alist, len1, i)
right = sortCount(alist, len2, i + len1)
修改您的sortCount
,如下所示:
def sortCount(alist, n, i=0):
if len(alist) <= 1:
return 0
else:
len1 = n // 2
len2 = n // 2 + n % 2
if len1==0:
return 0
left = sortCount(alist, len1, i)
right = sortCount(alist, len2, i + len1)
mergeInv = mergeCount(alist, i, len1, len2)
return left + right + mergeInv
def sortCount(列表,n,i=0):
如果是len(alist),你会犯什么错误?你问问题的方式表明你的编程方法存在一个深刻而根本的问题。您没有包含错误消息。你刚才说发生了一个错误。错误消息包含解释错误的信息。读取和理解错误消息是调试的重要先决条件。请停止忽略错误消息的内容。请尝试在这里分析您的程序。我使用的是空闲的Python 2.7 IDE,它没有给我任何消息。。。我本来会写的,但我找不到错误消息。只是红色的文字
def sortCount(alist, n, i=0):
if len(alist) <= 1:
return 0
else:
len1 = n // 2
len2 = n // 2 + n % 2
if len1==0:
return 0
left = sortCount(alist, len1, i)
right = sortCount(alist, len2, i + len1)
mergeInv = mergeCount(alist, i, len1, len2)
return left + right + mergeInv