def select_sort_simple(li):
li_new = []
for i in range(len(li)):
min_val = min(li)
li_new.append(min_val)
li.remove(min_val)
return li_new
# 总结:第一个数不要动,之后的数和第一个数进行比较,如果比第一个数小则交换下标,遍历完一遍之后,将值进行交换
def select_sort(li):
for i in range(len(li) - 1): # i是第几趟
min_loc = i
for j in range(i + 1, len(li)): # 无序区的所有的值遍历完,然后再进行交换
if li[j] < li[min_loc]:
min_loc = j
li[i], li[min_loc] = li[min_loc], li[i]
return li
li = [6, 5, 4, 2, 1, 3]
print(li)
# print(select_sort_simple(li))
print(select_sort(li))
# 这样更简单
# 总结:每一轮都和每一轮的最开始的第一个数比较,如果后面的数比每一轮的最开始的第一个数小,就交换。
# 注意这是不稳定的,如[2,2,1]
# def select_sort(li):
# for i in range(len(li) - 1):
# for j in range(i + 1, len(li)):
# if li[j] < li[i]:
# li[i], li[j] = li[j], li[i]
#
# return li
#
#
# li = [5, 7, 6, 6, 9, 2, 3, 5]
# print(select_sort(li))
选择排序算法
于 2023-04-21 15:27:50 首次发布