简介选择排序(SelectionSort)是一种简单直观的排序算法。它的工作原理是:先在未排序的序列中找到最小(最大)的元素,将其存放在已排序序列的开头,然后继续从剩余的未排序的元素中寻找最小(最大)的元素,然后放入排序序列的末尾。依此类推,直到所有元素都排序完毕。算法实现步骤的初始状态:无序区域为$R\left[1,\cdots,n\right]$,有序区域为空;第i次排序$\left(i=1,2,3,\cdots,n-1\right)$开始,当前有序区和无序区分别为$R\left[1,\cdots,i-1\right]$和$R\left[i,\cdots,n\right]$。本轮排序从当前无序区中选出关键字最小的记录$R\left[k\right]$,与无序区中的第一条记录R交换,使得$R\left[1,\cdots,i\right]$和$R\left[i+1,\cdots,n\right]$分别成为记录数增加的新有序区和记录数减少的新无序区记录序列区;$n-1$轮结束,所有元素都已排序。Python代码实现#selection_sort代码实现fromtypingimportListdefselection_sort(arr:List[int]):"""选择排序:paramarr:待排序列表:return:选择排序即就地排序(in-place)"""length=len(arr)iflength<=1:returnforiinrange(length):min_index=imin_val=arr[i]forjinrange(i,length):ifarr[j]
