试图在Python中实现选择排序,结果不正确

试图在Python中实现选择排序,结果不正确,python,algorithm,sorting,selection-sort,Python,Algorithm,Sorting,Selection Sort,我在读一本关于算法的书时,试图用Python实现选择排序。下面的代码将正确替换某些项,但其中一些项不会更改 list = [23, 65, -9, 19, 90, 0, -1] def sel_sort(A): for i in range(len(A)): sm_item = A[i] for j in range(1+i, len(A)): if A[j] < sm_item: A[i]

我在读一本关于算法的书时,试图用Python实现选择排序。下面的代码将正确替换某些项,但其中一些项不会更改

list = [23, 65, -9, 19, 90, 0, -1]


def sel_sort(A):
    for i in range(len(A)):
        sm_item = A[i]
        for j in range(1+i, len(A)):
            if A[j] < sm_item:
                A[i], A[j] = sm_item, A[i]
    return A

print(sel_sort(list))
list=[23,65,-9,19,90,0,-1]
定义选择排序(A):
对于范围内的i(len(A)):
sm_项目=A[i]
对于范围(1+i,len(A))内的j:
如果[j]
结果是:[23,65,65,65,90,90,90]


无法理解为什么会出现这种结果?

像这样更改代码

list = [23, 65, -9, 19, 90, 0, -1]


def sel_sort(A):
 for i in range(len(A)):
    sm_item = A[i]
    for j in range(1+i, len(A)):
        if A[j] < sm_item:
            sm_item=A[j]
            A[i], A[j] = A[j], A[i]
 return A

print(sel_sort(list))
list=[23,65,-9,19,90,0,-1]
定义选择排序(A):
对于范围内的i(len(A)):
sm_项目=A[i]
对于范围(1+i,len(A))内的j:
如果[j]