选择排序的核心就是对有n个元素的列表找n次最小值,然后将最小值出栈压入新创建的列表里,这样新创建的列表自然就是从小到大排序了
代码如下
def print_info():
lst_o = [1, 3, 9, 7, 5, 4, 6, 8]
print("排序前的列表:", lst_o)
return lst_o
def find_smallest(lst):
smallest = lst[0]
smallest_index = 0
for i in range(1, len(lst)):
if smallest > lst[i]:
smallest = lst[i]
smallest_index = i
return smallest_index
def selection_sort(lst_o):
lst_n = []
for i in range(len(lst_o)):
smallest_index = find_smallest(lst_o)
lst_n.append(lst_o.pop(smallest_index))
return lst_n
def main():
lst_o = print_info()
lst_n = selection_sort(lst_o)
print("经过选择排序后的列表:", lst_n)
main()
结果如下
排序前的列表: [1, 3, 9, 7, 5, 4, 6, 8]
经过选择排序后的列表: [1, 3, 4, 5, 6, 7, 8, 9]