在python中,使用递归而不是循环将列表按值按升序排序

在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

在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
        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:是的。事实上,我试过这个程序。然而,它似乎不起作用。我附上了关于我所拥有的东西的截图。