递归插入排序帮助需要 - Python

时间:2015-02-27 22:39:02

标签: python recursion insertion-sort

我一直坚持这个问题很长一段时间了。我只是学习如何编写代码和递归语句对我来说没有多大意义。在我的编程类中,我被告知要做一个递归插入排序程序,我做了,但它不会被接受因为我不知道函数在做什么以及它如何更改列表以便对它进行排序。所以我有两个问题,我将用几乎完全相同的代码单独解决。

关于我的代码我的第一个问题是,如前所述,它是如何工作的?

numList = [2,4,1,3,5]
def insertionSort(i, numList):
    if i > 0:
        insertionSort(i-1, numList)
        if numList[i] < numList[i-1]:
            numList[i], numList[i-1] = numList[i-1],numList[i]
            insertionSort(i-1, numList)


insertionSort(4,numList)
print(numList)

我正在调用该函数两次,我不知道为什么这样做。我认为在if语句之前调用函数会使它工作,但事实并非如此。

这引出了我的另一个问题。 我该如何制作这段代码:

numList = [2,4,1,3,5]
def insertionSort(i, numList):
    if i > 0:
        insertionSort(i-1, numList)
        if numList[i] < numList[i-1]:
            numList[i], numList[i-1] = numList[i-1],numList[i]



insertionSort(4,numList)
print(numList)

工作?

我的教授说代码基本上存在,但我需要更改或添加一些内容才能使其正常工作。

谢谢。

0 个答案:

没有答案