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

What is wrong with my Selection Sort code?

我的代码如下:

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]

我的范围可能有问题,但我无法弄清楚是什么。帮助?谢谢!

与你的射程无关;那不是选择排序。

尝试用纸笔跟踪您的算法,看看发生了什么。

选择排序应该有两个计数循环:i 的外部循环和 j 的内部循环。我循环遍历除最后一个元素之外的所有元素。 j 循环寻找 (i,j).

中的最小元素

希望对您有所帮助。