代码如下
a = [2, 40, 74, 10, 60, 50]
n = len(a)
for i in range(n):
min_idx = i # 最小值索引
for j in range(i + 1, n): # 从未排序的部分找出最小值,并记住其索引
if a[j] < a[min_idx]:
min_idx = j
a[i], a[min_idx] = a[min_idx], a[i] # 最小值与已排序好的交换位置
print(a) # [2, 10, 40, 50, 60, 74]
总结
- 分为
有序部分
和无序部分
, 无序部分
排序逐步追加到有序部分
- 认识python交换的特殊写法