1. 基本操作:
它的基本思想是:第一次从arr[0到]arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]到arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]到arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1]arr[n-1]中选取最小值,与arr[i-1]交换,…, 第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。
#定义了一个选择排序的函数,接收一个列表nums作为输入。
def selectsort(nums):
#外层循环控制需要进行多少轮选择,每一轮选择会确定一个位置的元素。
for i in range(len(nums)-1):
#初始化最小值索引为当前位置i。
min_ = i
#内层循环从当前位置i的下一个位置开始遍历列表,找到未排序部分的最小值索引。
for j in range(i+1, len(nums)):
#如果找到比当前最小值还小的元素,则更新最小值索引为j。
if nums[j] < nums [min_]:
min_ = j
##如果最小值索引发生了变化(即找到了比当前位置更小的元素),则进行交换操作。
if min !=i:
#交换当前位置的元素和最小值元素的位置。
temp = nums[i]
nums[i] = nums[min_]
nums [min_]=temp
#返回排序后的列表。
return nums
if __name__=="__main__":
nums=[3,2,4,5,6,1]
#调用selectsort函数对列表nums进行选择排序,并打印排序后的结果。
print(selectsort(nums))