题目要求
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
输入格式:
输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
输出格式:
按照以下格式输出排序后的结果:
After sorted:
每行一个字符串
输入样例:
red yellow blue green white
输出样例:
After sorted:
blue
green
red
white
yellow
代码+注释
list=input().split()#输入
#选择排序
#i=0时找出最小值放到list[0],i=1时找到第二小的放到list[1],后面的依此类推
for i in range(len(list)):
t=i#用于记录当前的最小值的位置
for j in range(i+1,len(list)):
if(list[j]<list[t]): t=j
list[i],list[t]=list[t],list[i]#将最小值放到该放的位置
#list.sort() #python自带的排序函数
print('After sorted:')#输出
for i in range(len(list)):
print(list[i])
代码结果
总结
选择排序工作原理:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。数据处理步骤:使用排序算法进行排序,可以自己写,也可以是python当中提供的sort函数
题外话
这里用到了选择排序,就是每一轮找到最小的来减少交换的次数;开始用了冒泡,写完就觉得这有点太暴力了。。。