在python中,使用递归而不是循环将列表按值按升序排序
在python中,如何使用递归而不是循环将列表按值升序排序? 例如,将[2,0,1]排序为[0,1,2]在python中,使用递归而不是循环将列表按值按升序排序,python,Python,在python中,如何使用递归而不是循环将列表按值升序排序? 例如,将[2,0,1]排序为[0,1,2] def sort(a): pos = 0 if pos == 0 or a[pos] >= a[pos - 1]: pos += 1 return sort(a) else: a[pos], a[pos-1] = a[pos-1], a[pos] pos -= 1 retur
def sort(a):
pos = 0
if pos == 0 or a[pos] >= a[pos - 1]:
pos += 1
return sort(a)
else:
a[pos], a[pos-1] = a[pos-1], a[pos]
pos -= 1
return sort(a)
这是我写的,我知道它不起作用,因为pos一开始总是等于0。
我怎样才能修好它
我测试下面的代码。
基于,是递归排序算法的一个示例,可以在Python中实现,如下所示:
def quick_sort(l):
if len(l) <= 1:
return l
else:
return quick_sort([e for e in l[1:] if e <= l[0]]) + [l[0]] +\
quick_sort([e for e in l[1:] if e > l[0]])
def快速排序(l):
如果len(l)假设您使用了其他人的sort
函数,而不是进行递归调用。你能想出一种方法在一些子列表(或子列表)上使用sort
函数,并将结果合并得到一个排序列表吗?你所要做的就是写下它,然后意识到你可以进行递归调用,而不是使用外部函数——因为它做同样的事情。如果你是在复制别人的作品,至少要给一个学分@Austin done:)@Austin如果这是相同的答案,那么这个问题就应该被欺骗。@RoadRunner:是的。事实上,我试过这个程序。然而,它似乎不起作用。我附上了关于我所拥有的东西的截图。