类似于一种双指针的解法,在第一层循环中,指针从0开始,我们假设当前指针为最小值的指针,然后定义另外一个指针从当前指针开始依次往后遍历做对比,选择当前遍历中最小值所对应的指针,更新第一层指针的值,这样我们每次遍历一次都能选出当前循环最小的值,这样就能完成从小到大的排序。如下图所示

# 选择排序
def select_sort(nums: list):
nums_len = len(nums)
for index in range(nums_len -1):
min_index = index
for index2 in range(index, nums_len):
if nums[min_index] > nums[index2]:
min_index = index2
if min_index != index:
nums[index], nums[min_index] = nums[min_index], nums[index]
O(N^2)