第3章-11 字符串排序 (20 分)

题目要求

本题要求编写程序,读入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函数

题外话

这里用到了选择排序,就是每一轮找到最小的来减少交换的次数;开始用了冒泡,写完就觉得这有点太暴力了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值