选择排序:
列表中有多个元素要排序 第一次,将列表第一个元素赋值给min变量 然后遍历剩余元素找到最小元素所在的坐标 (剩余的元素和min比较,如果比min小,就把min的值改为此元素值)然后将一个元素和最小元素通过坐标来进行交换。 实现了,将最小值放到了第一个位置。
第2次,将列表第2个元素赋值给min变量 然后遍历剩余元素找到最小元素所在的坐标(第一个元素不参与比较) (剩余的元素和min比较,如果比min小,就把min的值改为此元素值) 然后将一个元素和最小元素通过坐标来进行交换。 实现了,将次小值放到了第2个位置。
第3次,将列表第3个元素赋值给min变量 然后遍历剩余元素找到最小元素所在的坐标(第1和2元素不参与比较) (剩余的元素和min比较,如果比min小,就把min的值改为此元素值) 然后将一个元素和最小元素通过坐标来进行交换。 实现了,将第三小值放到了第3个位置
a = [5, 4, 3, 6, 8, 7]
for i in range(len(a) - 1):
min = a[i] # 记录当前最小值
index = i # 记录最小值的坐标
for j in range(i + 1, len(a)):
if a[j] < min: # 当我遇到更小的,比较的基准变为了更小的值
min = a[j]
index = j # 并且把坐标记录下来
# 能否找到最小值和它所在的坐标?
a[i], a[index] = a[index], a[i] # 是不是实现了将最小值放到第一个位置
print(a)
原文:https://www.cnblogs.com/testerWangzhao/p/11762488.html