排序:python依次接收用户输入3个数,排序后打印(八种方案)

本文详细介绍了Python中进行排序的八种不同方案,包括使用内置sort函数、max函数、min函数,自定义排序规则,列表处理,交换排序,封装解构法以及经典的冒泡排序算法。每个方案都提供了清晰的逻辑思路,旨在帮助读者深入理解排序原理并提升编程技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方案一:(使用sort函数)

lst = []
n = 3
for i in range(n):
    lst.append(int(input('>>>')))

print(sorted(lst,reverse=True))

方案二:(逻辑严谨练习)

num = []
for i in range(1,4):
    num.append(int(input('>>>')))
print(num)

if num[0] < num[1]:
    if num[0] < num[2]:
        print(num[0])
        if num[1] < num[2]:
            print(num[1])
            print(num[2])
        else:
            print(num[2])
            print(num[1])
    else:
        print(num[2])
        print(num[0])
        print(num[1])
else:
    if num[1] < num[2]:
        print(num[1])
        if num[0] < num[2]:
            print(num[0])
            print(num[2])
        else:
            print(num[2])
            print(num[0])
    else:
        print(num[2])
        print(num[1])
        print(num[0])

方案三:(逻辑严谨练习,使用max函数)

num = []
for i in range(1,4):
    num.append(int(input('>>>')))
print(num)

if num[0] == max(num[0],num[1],num[2]):
    if num[1] == max(num[1],num[2]):
        print(num[2],num[1],num[0])
    else:
        print(num[1],num[2],num[0])
elif num[1] == max(num[0],num[1],num[2]):
    if num[0] == max(num[0],num[2]):
        print(num[2],num[0],num[1])
    else:
        print(num[0],num[2],num[1])
else:
    if num[0] == max(num[0],num[1]):
        print(num[1],num[0],num[2])
    else:
        print(num[0],num[1],num[2])

方案四:(自定义升序降序)

num = []
for i in range(1,4):
    num.append(int(input('>>>')))
print(num)

if num[0] == max(num[0],num[1],num[2]):
    if num[1] == max(num[1],num[2]):
        out = [2,1,0]
    else:
        out = [1,2,0]
elif num[1] == max(num[0],num[1],num[2]):
    if num[0] == max(num[0],num[2]):
        out = [2,0,1]
    else:
        out = [0,2,1]
else:
    if num[0] == max(num[0],num[1]):
        out = [1,0,2]
    else:
        out = [0,1,2]

out.reverse()
for i in out:
    print(num[i])

方案五:(利用列表处理,使用min函数)

lst = []
count = 0
n = 3
for i in range(n):
    lst.append(int(input('>>>')))
while True:
    min_num =  min(lst)
    print(min_num)
    lst.remove(min_num)
    count += 1
    if count == n:
        break

方案六:(交换排序)

num = []
for i in range(1,4):
    num.append(int(input('>>>')))
print(num)

if num[0] > num[1]:
    tmp = num[0]
    num[0] = num[1]
    num[1] = tmp
    if num[1] > num[2]:
        tmp = num[1]
        num[1] = num[2]
        num[2] = tmp 
        if num[0] > num[1]:
            tmp = num[0]
            num[0] = num[1]
            num[1] = tmp
else:
    if num[1] > num[2]:
        tmp = num[1]
        num[1] = num[2]
        num[2] = tmp
        if num[0] > num[1]:
            tmp = num[0]
            num[0] = num[1]
            num[1] = tmp
print(num)

方案七:(封装解构法)

num = []
for i in range(1,4):
    num.append(int(input('{}>>>'.format(i))))
print(num)

if num[0] > num[1]:
    num[0],num[1] = num[1],num[0]
    if num[1] > num[2]:
        num[1],num[2] = num[2],num[1]
    if num[0] > num[1]:
        num[0],num[1] = num[1],num[0]
else:
    if num[1] > num[2]:
        num[1],num[2] = num[2],num[1]
        if num[0] > num[1]:
            num[0],num[1] = num[1],num[0]
print(num[0],num[1],num[2])

方案八:(冒泡法)

lst = [0,9,8,7,6,2,3,4,5,1]
# lst = [0,1,2,3,4,5,6,7,8,9]
# lst = [3,1,2]
n = len(lst)
loops = n - 1
count = 0
count_swap = 0
for x in range(loops,0,-1):
    j = x + 1
    flag = False
    count += 1
    for i in range(1,j):
        if lst[i] < lst[i-1]:
            count_swap += 1
            lst[i],lst[i-1] = lst[i-1],lst[i]
            flag = True
    if not flag:
        break
print(lst)
print(count,count_swap)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值