'''
选择排序算法灵巧, 但其速度不是很快, 快速排序是一种更快的排序算法
思想:
每次从原列表中取出最小的元素, 追加到新列表中, 并将取出的元素从原列表中删除, 直到原列表中没有元素时, 返回新列表
'''
# 返回列表中的最小元素索引
def findSmallest(arr):
smallest = arr[0] #存储最小的值
smallest_index = 0 #存储最小元素的索引
for i in range(1, len(arr)):
if arr[i] < smallest:
smallest = arr[i]
smallest_index = i
return smallest_index
def selectionSort(arr):
new_arr = []
for i in range(len(arr)): #起始时,arr中有几个元素,就循环几次; 每次取出一个最小的元素
smallest_index = findSmallest(arr) #每迭代一次得到最小元素的索引
new_arr.append(arr.pop(smallest_index)) #从原列表中删除该元素, 并将该元素加入新创建的列表中
return new_arr
# 测试
test_arr = [3, 1, 7, 5, 15, 10]
r = selectionSort(test_arr)
print(r)