1. 选择排序法
选择排序法就是反复从未排序的数列中取出最小(或最大)的数据,将其存放在序列的起始位置,然后,再从未排序的元素中继续寻找最小(或最大)的数据,存放在已排序序列的末尾,以此类推。最后的结果即为已经排序好的数列。选择排序法最后的结果有两种形式,即递增数列和递减数列。
2. 使用选择排序法
- 递增排序
def choose(data): #自定义一个选择排序法函数
for i in range(4): #遍历新数据
for j in range(i+1,5): #遍历新数据
if data[j]<data[i]: #如果数据小于原来的数据
#print(i,j,data[j],data[i])
data[i],data[j]=data[j],data[i] #需要交换位置
print('第 %d 次排序之后的结果是'%(i+1),end='')
for j in range(5): #遍历每次排序的结果
print('%4d'%data[j],end='') #输出结果
print() #输出空行
# data=[56,18,49,84,72] #创建数列并初始化
data=[100,80,60,40,20]
print("原始数据为:")
for i in range(5): #遍历原有数据
print('%4d'%data[i],end='') #输出结果
print('\n---------------------------') #输出分界符
choose(data) #调用选择排序法函数
print('\n---------------------------') #输出分界符
print("排序之后的数据为:")
for i in range(5): #遍历排序好的新数列的数据
print('%4d'%data[i],end='') #输出结果
print('') #输出空行
- 递减排序
def choose(data): #自定义一个选择排序法函数
for i in range(4): #遍历新数据
for j in range(i+1,5): #遍历新数据
if data[j]>data[i]: #如果数据大于原来的数据
data[i],data[j]=data[j],data[i] #需要交换位置
print('第 %d 次排序之后的结果是'%(i+1),end='')
for j in range(5): #遍历每次排序的结果
print('%6d'%data[j],end='') #输出结果
print() #输出空行
data=[420,434,421,539,555] #创建数列并初始化
print("各个学生成绩如下:")
for i in range(5): #遍历原有数据
print('%6d'%data[i],end='') #输出结果
print('\n---------------------------') #输出分界符
choose(data) #调用选择排序法函数
print('\n---------------------------') #输出分界符
print("从高到低排名之后的成绩如下:")
for i in range(5): #遍历排序好的新数列的数据
print('%6d'%data[i],end='') #输出结果
print('') #输出空行