我的选择排序代码有什么问题?

时间:2016-06-05 23:32:28

标签: python-3.x selection-sort

我的代码如下:

def selection_Sort(aList):
    i = 0
    for j in range(1, len(aList)-1):
        while aList[j] < aList[i]:
            aList[i], aList[j] = aList[j], aList[i]
            i += 1
    return aList

aList = [5,2,3,7,6]

print(selection_Sort(aList))

然而,它打印出来:[2,3,5,7,6]

我的射程可能有问题,但我无法弄清楚是什么。救命?谢谢!

1 个答案:

答案 0 :(得分:0)

它与你的范围无关;这不是一种选择。

尝试使用纸和笔在您的算法中进行追踪,看看发生了什么。

选择排序应该有两个计数循环:i为外部,j为内部。我遍历除最后一个元素之外的所有元素。 j循环找到(i,j]中的最小元素。

希望这有帮助。