试图在Python中实现选择排序,结果不正确
我在读一本关于算法的书时,试图用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]
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]