1、算法步骤
a. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
b. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
c. 重复第二步,直到所有元素均排序完毕。
2、动图演示
3、代码
# 定义一个函数selectionSort,参数为一个列表arr def selectionSort(arr): # 外层循环,从索引0遍历到len(arr) - 1 for i in range(len(arr) - 1): # 记录最小数的索引,默认为当前索引i minIndex = i # 内层循环,从i+1遍历到len(arr) for j in range(i + 1, len(arr)): # 如果当前元素小于最小数 if arr[j] < arr[minIndex]: # 更新最小数的索引 minIndex = j # 如果i不是最小数的索引,则交换i和最小数的位置 if i != minIndex: arr[i], arr[minIndex] = arr[minIndex], arr[i] # 返回排序后的列表arr return arr