检查是否在python中使用递归进行排序
我试图检查列表是否在python中使用递归进行排序。如果已排序,则返回true;如果未排序,则返回False检查是否在python中使用递归进行排序,python,sorting,recursion,Python,Sorting,Recursion,我试图检查列表是否在python中使用递归进行排序。如果已排序,则返回true;如果未排序,则返回False def isSorted(L): if len(L) < 2: return True def被分类(L): 如果len(L)
def isSorted(L):
if len(L) < 2:
return True
def被分类(L):
如果len(L)<2:
返回真值
现在,我不知道我下一步该做什么。请帮忙 检查前两项
如果已排序,请使用递归检查下一项:
def isSorted(L):
if len(L) < 2:
return True
return L[0] <= L[1] and isSorted(L[1:])
def被分类(L):
如果len(L)<2:
返回真值
返回L[0]您应该为此编写一个单元测试:),然后断言x项列表的顺序正确。return len(L)<2或(L[0]+1.还可以通过为当前元素的索引引入一个额外参数并在递归调用中递增此索引来避免列表复制。然后定义一个包装器以将初始索引集传递到0。基本大小写将更改为idx>=len(L)-1.但这抓住了要点。很好。如果在每一步将列表一分为二,递归深度将为log2(n)
return len(L) < 2 or (L[0] <= L[1] and isSorted(L[1:]))