python 选择排序代码求解读
下面的代码请大神帮忙解读,没看懂,谢谢。选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
import sys
A =
for i in range(len(A)):
min_idx = i
for j in range(i+1, len(A)):
if A > A:
min_idx = j
A, A = A, A
print ("排序后的数组:")
for i in range(len(A)):
print("%d" %A),
本帖最后由 默不言 于 2022-9-12 13:38 编辑
个人的一些见解,我也是小白,不足之处,请指出。
```
import sys
A =
for i in range(len(A)): #对列表A进行循环取值
min_idx = i # 值相对小的索引值赋值给min_idx
for j in range(i+1, len(A)): # 对第i个值之后的值进行循环取值
if A > A: # 将第i个值和第i+1之后的值进行对比,确定大小,这里会将小值取出来,并且可以判断出大值和小值
min_idx = j # 最小值的索引值赋值给min_idx
A, A = A, A # 将相对较小的值替换为索引为i的值,较大的值替换为索引为i+1的值,相当于把 32,25 位置对换,变成25,32
print ("排序后的数组:")
for i in range(len(A)): # 这里的列表A是已经调整好顺序的列表(相当于新列表:A =
print("%d" %A), # 标准化逐行输出排序后的列表A,这里的“,”不应该出现,标准化输出,建议使用format函数
``` 双重循环,比对大小,大于则置索引为0 单纯的学习学习 选择排序,双重遍历,第一层遍历表示选择最小值的范围,第二层遍历表示选择最小值的过程 # import sys 这行代码是多余的
A = # A是一个乱序的列表 既不是从小到大排序 也不是从大到小排序
for i in range(len(A)): # 外层for循环 遍历列表中的五个元素 len(A)的长度为列表中的元素个数
min_idx = i # 取列表中的第一个值 假设它是最小的 虽然实际上不是的
for j in range(i+1, len(A)): # 内层循环 循环次数为未排好序的元素个数
if A > A: # 进行比较 拿min_idx与j比较 如果min_idx大于j min_idx的值就为j
min_idx = j
A, A = A, A # 进行交换
print ("排序后的数组:")
for i in range(len(A)):
print("%d" %A) ```python
# 选择排序,就是两个for循环,第一个for是有多少个元素,就比较多少次,形成有序列表。第二个for是从剩下无序列表中找到最小的值,加入到有序列表中。
# 即你可以看成是一个有序链表+无序链表
A = # A是一个乱序的列表
for i in range(len(A)): # 外层for循环,遍历列表中的五个元素,从0到len(A)即5,不包含5,即0到4
min_idx = i # 取出列表下标
for j in range(i+1, len(A)): # 内层循环 从剩下无序列表中找到最小的值,加入到有序列表中
if A > A: # 进行比较 如果无序列表中有比设定的最小值还有小,则更新最下值下标。
min_idx = j
A, A = A, A # 将找到的最小值加入到有序列表中,将之前设置的最小值赋给无序列表的最小下标值
print ("排序后的数组:")
for i in range(len(A)):
print("%d" %A)
# 可以参考这篇文章
# https://www.runoob.com/w3cnote/selection-sort.html
``` 这个是冒泡排序吗 一个图看懂
https://img-blog.csdnimg.cn/20210711213326712.gif SLCoCo 发表于 2022-9-13 23:47
一个图看懂
正解。不知道这位吾爱同仁,这图是在哪找到的呀,可否共享,谢谢。
页:
[1]
2