Python 递归错误将我的排序函数限制在大数组中

Python 递归错误将我的排序函数限制在大数组中,python,recursion,Python,Recursion,我需要帮助重写一些递归代码,这样我就不会遇到以下错误: RecursionError: maximum recursion depth exceeded in comparison 我的算法应该取一个充满随机整数的数组,并通过翻转整数对其进行排序。然后它返回所进行的翻转次数。在我达到2^10的大小之前,它可以正常工作 def flippers(A, count = 0): for i in range(1,len(A)): j=i-1 if(A[j]&

我需要帮助重写一些递归代码,这样我就不会遇到以下错误:

RecursionError: maximum recursion depth exceeded in comparison
我的算法应该取一个充满随机整数的数组,并通过翻转整数对其进行排序。然后它返回所进行的翻转次数。在我达到2^10的大小之前,它可以正常工作

def flippers(A, count = 0):
    for i in range(1,len(A)):

        j=i-1
        if(A[j]>A[j+1]):
            temp = A[j+1]
            A[j+1] = A[j]
            A[j] = temp
            j += 1
            count += 1
    for i in range(1,len(A)):
        if(A[i]<A[i-1]):
            return flippers(A, count)
    return count
def翻转器(A,计数=0):
对于范围(1,len(A))中的i:
j=i-1
如果(A[j]>A[j+1]):
温度=A[j+1]
A[j+1]=A[j]
A[j]=温度
j+=1
计数+=1
对于范围(1,len(A))中的i:

如果(A[i]因为不需要递归,这是最简单的排序算法:

for i in range(len(a)):
    for j in range(i+1, len(a)):
        if a[j] < a[i]:
            a[i], a[j] = a[j], a[i]
对于范围内的i(len(a)):
对于范围(i+1,len(a))内的j:
如果a[j]

还要注意,在python中,不需要使用
temp
在两个变量之间切换,您只需使用
a[i],a[j]=a[j],a[i]

您必须在递归中执行此操作吗?因为这是嵌套二维循环的经典任务,而不是递归。我想不是!我只是认为我们必须这样做。我想更简单的是。我想我尝试使用嵌套for循环执行此操作,但不记得是如何执行的,并且一些在线教程不断给我错误。您太棒了,非常感谢!我不知道为什么我想得那么多。