Python | 输入一串数字进行排序:选择排序法,从复杂到简单

 这里的代码实质上非常简单,看似复杂,是为了把每一步骤的过程详解清楚!如果嫌麻烦大家可以移步到文章末端,几句简单的代码就能实现功能。本质上其实就是通过对最小值的不断选择进行排序。

#生成lst
numbers = input("请输入数字(空格分隔):")
lst = []

for item in numbers.split():
    lst.append(int(item))
print(lst)

#设定new_order
new_order=[]

#不断筛选最小值,进行排序
smallest=lst[0]
n=1
while n< len(lst):
    if lst[n]<smallest:
        smallest=lst[n]
    n+=1
print(smallest)
new_order.append(int(smallest))
print(new_order,type(new_order))
lst.remove(smallest)
print(lst)

#第二次
smallest=lst[0]
n=1
while n< len(lst):
    if lst[n]<smallest:
        smallest=lst[n]
    n+=1
print(smallest)
new_order.append(int(smallest))
print(new_order)
lst.remove(smallest)
print(lst)

#第三次
smallest=lst[0]
n=1
while n< len(lst):
    if lst[n]<smallest:
        smallest=lst[n]
    n+=1
print(smallest)
new_order.append(int(smallest))
print(new_order)
lst.remove(smallest)
print(lst)

 

 注意要用list形式进行迭代,可以看出我们利用选择法不断剔除最小值,并直接录入新的排序list中

f816acb804dd4d42861a3e3cea98e9a2.png

因为这个代码最开始写的时候是用来进行找出最小值的,所以没有进行简化,利用min()函数进行简化,可以得到非常简单明了的代码:

numbers = input("请输入数字(空格分隔):")
lst = [int(item) for item in numbers.split()]
print(lst)

new_order = []

while lst:
    smallest = min(lst)
    new_order.append(smallest)
    lst.remove(smallest)

print("排序后的列表:", new_order)

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值