实现思路:
1、每次循环找出列表中最小的元素
2、将其依次加入新的列表中,并删除它
#找出列表中最小的元素,并返回其索引
def find_smallest(arr):
smallest = arr[0] #储存最小的值
smallest_index = 0 #存储最小元素的索引,用于后面的删除操作
#循环从1开始,0已经在上面将其设为最小值
for i in range(1,len(arr)):
if arr[i] < smallest:
smallest = arr[i]
smallest_index = i
#返回最小元素的索引
return smallest_index
#将最小的元素加入新的列表,并且删除它,返回新的列表
def selection(arr):
new_arr = []
#
for i in range(len(arr)):
#找出最小的元素
a = find_smallest(arr)
#将最小的元素加入新列表并删除
new_arr.append(arr.pop(a))
return new_arr
if __name__ == "__main__":
arr = [2,1,3,45,9]
print(selection(arr))
输出:
[1, 2, 3, 9, 45]
>>>