选择排序可以对列表进行排序升序/降序可以使用min()/max()函数控制
具体实现查阅如下代码:
# 将列表分为有序区域和无需区域
list2 = [21, 32, 43, 23, -21, 34, -100, 200, 300]
# 将list2进行升序排序
# 第一次 有序区1 无序区8
min_index = list2.index(min(list2[0:]))
list2[0], list2[min_index] = list2[min_index], list2[0]
print(list2)
# 第二次 有序区2 无序区7
min_index = list2.index(min(list2[1:]))
list2[1], list2[min_index] = list2[min_index], list2[1]
print(list2)
# 第三次 有序区3 无序区6
min_index = list2.index(min(list2[2:]))
list2[2], list2[min_index] = list2[min_index], list2[2]
print(list2)
# 第n次 有序区9,无序区0 ,打印输出
# 转换为循环
for i in range(len(list2) - 1): # -1 最后一次不需要执行
min_index = list2.index(min(list2[i:]))
list2[i], list2[min_index] = list2[min_index], list2[i]
print(list2)
def select_function(demo_list: list):
"""选择排序"""
for i in range(len(demo_list) - 1): # -1 最后一次不需要执行
min_index = demo_list.index(min(demo_list[i:]))
if i > min_index: # 存在重复的元素时导致小标问题
min_index = i
for j in range(i+1, len(demo_list)):
if demo_list[j] < demo_list[min_index]:
min_index = j
demo_list[i], demo_list[min_index] = demo_list[min_index], demo_list[i]
return demo_list
result = select_function([13, 50, 6, 6, 4])
print(result)