选择排序

# 选择最大的往后排,最后i个是有序列表
def selectMaxSort(aList):
    for i in range(len(aList)):
        maxNum = aList[0]
        maxLoc = 0
        for j in range(len(aList)-i):
            if aList[j] > maxNum:
                maxNum = aList[j]
                maxLoc = j
        aList[maxLoc], aList[len(aList)-1-i] = aList[len(aList)-1-i], aList[maxLoc]

# 选择最小的往前排,前i个是有序列表
def selectMinSort(aList):
    for i in range(len(aList)):
        minNum = aList[len(aList) - 1]
        minLoc = len(aList) - 1
        for j in range(i, len(aList)):
            if aList[j] < minNum:
                minNum = aList[j]
                minLoc = j
        aList[i], aList[minLoc] = aList[minLoc], aList[i]

alist = [54, 26, 93, 17, 77, 31, 44, 55, 20]
selectMaxSort(alist)
print(alist)
blist = [54, 26, 93, 17, 77, 31, 44, 55, 20]
selectMinSort(blist)
print(blist)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值