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循环执行此操作,但不记得是如何执行的,并且一些在线教程不断给我错误。您太棒了,非常感谢!我不知道为什么我想得那么多。