python 选择排序

选择排序和冒泡排序很相似

选择排序是定死第一个数,用这个数与剩余的每个数进行对比,这样最后就会得到最小的数放在第一个位置,第二轮定死为第二个,与剩下的再进行对比…最后最大的就会放到最后,排序完成

就比如在一堆大小不一的球中进行选择(以从小到大,先选最小球为例):

  1. 选择一个基准球
  2. 将基准球和余下的球进行一一比较,如果比基准球小,则进行交换
  3. 第一轮过后获得最小的球
  4. 在挑一个基准球,执行相同的动作得到次小的球
  5. 继续执行步骤4,直到排序完成
list = [12,343,23,234,56677,332,34,45]

for i in range(len(list)-1):
    for j in range(i+1,len(list)-1):
        if list[i] > list[j]:
            list[i],list[j] = list[j],list[i]


print(list)
  1. 第一个 for 循环控制进行对比的轮数,到最后一组的时候其实以及排序完成,不用再来一轮,最后的对比轮数为len(List)-1

  2. 第二个 for 循环是控制对比的次数,由于每次定死一个,而且第一轮第一个固定最小,第二轮第一个第二个固定…
    对比的区间应该定为 [ i+1, len(List)-1]

  3. 因为每次对比都是定死前面的,第一轮定死第一个,第二轮第二个与后面对比,第三轮第三个…
    所以应该定死轮数 i 代表的那个数,与后面每个j进行对比。即判断 List[ i ] 是否大于 List[ j ],然后进行交换

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值