选择排序 (Selection Sort) 原理很简单,就是依次在未排序数据段中选择出一个最小的数,然后将其排列在已排序数据段末端,直到整个数据段排序完成算法结束。
程序如下,第一个循环依次缩小未排序数据段的长度,并且每次将最小值暂定为未排序中第一位索引。第二个循环依次将该最小值与未排序数据段作比较,选择出其中最小值的索引,并且交换值将未排序第一位归类到已排序序列中。
nArr = [3, 5, 1, 8, 4, 2, 7, 6, 9, 0]
for i in range(len(nArr)-1):
min = i #暂定最小值索引
for j in range(i+1,len(nArr)): #选择出段落中真正最小值索引
if nArr[min] > nArr[j]:
min = j
nArr[min],nArr[i] = nArr[i],nArr[min] #最小值放在已排序段末尾
print(nArr)