选择排序
难度:⭐⭐⭐
1. 题目描述
题目描述
选择排序(Selection sort)是一种简单直观的排序算法
- 每次找到最小的元素,然后放到最开始位置
- 再在剩余的元素中重复步骤 1
2. 关键点
- 每次找最小的元素是记录其下标
3. 代码实现
点击显示代码
python
import random
def sort_selection(lst):
"""选择排序"""
lst_len = len(lst)
for i in range(lst_len):
_min = i
for j in range(i, lst_len):
if lst[j] <= lst[_min]:
_min = j
if _min != i:
lst[i], lst[_min] = lst[_min], lst[i]
print(i, lst[:i+1])
lst = [random.randint(0, 10) for i in range(10)]
print(lst)
sort_selection(lst)
print(lst)
4. 运行示例
txt
[3, 8, 10, 2, 8, 1, 0, 7, 6, 7]
0 [0]
1 [0, 1]
2 [0, 1, 2]
3 [0, 1, 2, 3]
4 [0, 1, 2, 3, 6]
5 [0, 1, 2, 3, 6, 7]
6 [0, 1, 2, 3, 6, 7, 7]
7 [0, 1, 2, 3, 6, 7, 7, 8]
8 [0, 1, 2, 3, 6, 7, 7, 8, 8]
9 [0, 1, 2, 3, 6, 7, 7, 8, 8, 10]
[0, 1, 2, 3, 6, 7, 7, 8, 8, 10]
5. 进阶思考
- 优化示例代码