选择排序Python代码及注释

#Author:Anthony
def findSmallest(arr):#寻找最小值
    smallest=arr[0]#初始默认0索引位置的值为最小值
    smallest_index=0#索引
    for i in range(1,len(arr)):#去除0索引位置仍需比较len(arr)-1次,且i代表索引
        if smallest>arr[i]:#判断当前最小值与索引为i处的值的大小
            smallest=arr[i]#当 smallest>arr[i]时,就将arr[i]处的值设为最小值
            smallest_index=i#最小值所对应的索引值
    return smallest_index#返回最小值的索引

def seclectSort(arr):#选择排序
    newArr=[]#首先建立一个空数组,存放排序后的数组
    for i in range(len(arr)):#循环len(arr)次
        smallest=findSmallest(arr)#每次循环时调用findSmallest(),得出数组arr中的最小值的索引
        smallest_value=arr.pop(smallest)#将索引所对应的最小值从arr中移除,则smallest_value就是本次循环最小值,arr为去除本次循环最小值后的数组,并挂起
        newArr.append(smallest_value)#将最小值添加到newArr中,则newArr中的元素从小到大依次排列
    return newArr#返回选择排序后的数组

instance=[2,6,8,7,5,4,9]
result=seclectSort(instance)
print(result)
pop()是list对象中定义的一个方法,用于取出一个元素并且删除它
>>>a = [1, 2, 3]
>>>b = a.pop(1)
>>>a
>>>[1, 3]
>>>b
>>>2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值