python - 尝试在 Python 中实现选择排序,结果不正确
问题描述
在阅读有关算法的书时,我正在尝试自己在 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))
结果是:[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))
推荐阅读
- maven - 负载测试声纳实例
- c++ - fstream::open() 不起作用 - 从字符串中读取字符时出错
- python-sphinx - sphinx 未正确格式化 docopt 用法
- redirect - 如何解决来自 MediaWiki 的重定向
- javascript - 为什么它说 array.fillter 不是函数
- python - 在numpy中计算质心
- ansible - 在 Ansible 中将循环与直到结合
- sqlalchemy - Globalleaks: sqlalchemy.orm.exc.NoResultFound 需要数据库结果,但没有找到
- javascript - Stripe 拒绝将表单数据发送到“https://hooks.stripe.com/three_d_secure/redirect_complete...”
- javafx - 如何防止标签字体大小调整其父级的大小?