python:简单排序

第一种简单排序:只将最大值放前面进行逐个排序

# 降序排列
lst = [1,9,8,7,11,20,12,13,12]
for item in range(len(lst) - 1):
    max_index = item
    for i in range(max_index + 1, len(lst)):
        if lst[i] > lst[max_index]:
            max_index = i
    lst[item], lst[max_index] = lst[max_index], lst[item]
print(lst)

第二种简单排序:同时获取最大值和最小值,最大值放最前面,最小值放最后面,循环更优

import math
# 降序排列
lst = [1,9,8,7,11,20,12,11,12,13,12,11,11,20,31]
length = len(lst)
for item in range(math.ceil(length / 2)):
    max_index = item
    min_index = length -1 - item
    for i in range(max_index + 1, length - item):
        if lst[i] > lst[max_index]:
            max_index = i
        if lst[ -1 - i ] < lst[min_index]:
            min_index = length -1 - i
    if lst[max_index] == lst[min_index]:
        break
    elif item == min_index:
        lst[length -1 - item], lst[item] = lst[item], lst[length -1 - item]
        if max_index != length -1 - item:
            lst[item], lst[max_index] = lst[max_index], lst[item]
    elif item != min_index:
        lst[-1 - item], lst[min_index] = lst[min_index], lst[-1 - item]
        if item != max_index:
            lst[item], lst[max_index] = lst[max_index], lst[item]
    print(lst)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值