# 原理:依旧从索引为零的位置,开始遍历。先假定索引为0的元素最小,然后让右边的元素依次与之比较 # 如果右边的小,就进行交换,那么一轮之后索引为0的位置就是最小的元素。 # 然后索引从1开始,按照相同的方式比价剩余的元素,最终依次从左到右把所有元素的位置排好 import random def select_sort(arr): for i in range(len(arr)-1): # 最多依旧只需要遍历len(arr)-1次 for j in range(i+1, len(arr)): if arr[j] < arr[i]: arr[j], arr[i] = arr[i], arr[j] arr = list(range(20)) random.shuffle(arr) print(arr) # [14, 6, 3, 5, 12, 16, 15, 7, 13, 18, 11, 9, 10, 2, 1, 19, 4, 0, 8, 17] select_sort(arr) print(arr) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]