这里的代码实质上非常简单,看似复杂,是为了把每一步骤的过程详解清楚!如果嫌麻烦大家可以移步到文章末端,几句简单的代码就能实现功能。本质上其实就是通过对最小值的不断选择进行排序。
#生成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中
因为这个代码最开始写的时候是用来进行找出最小值的,所以没有进行简化,利用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)