Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python通过合并排序计算反转得到错误_Python_Python 2.7_Sorting_Mergesort_Inversion - Fatal编程技术网

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

我试图用Python计算长文本文件中的反转数。我一直在使用
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