冒泡排序

冒泡排序:

  以从小到大排序示例:

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

例:对[2,1,3,5]进行排序:

步骤:

  第一圈:
  [2,1,3,5]
    第一次 得出2的位置
    [2,1,3,5]
      第二次
      [2,3,1,5]
        第三次
        [2,3,5,1]    次数为  元素个数 - 1 - (圈数索引为0)

  第二圈:
  [2,3,5,1]
    第一次
    [3,2,5,1]
      第二次
      [3,5,2,1]   次数为 元素个数 - 1 - (圈数索引为1)
 
  第三圈:
  [3,5,2,1]
    第一次
    [5,3,2,1]     次数为 元素个数 - 1 - (圈数索引为2)

总结规律
圈数  是元素个数减一
次数  元素个数 - 1 - (圈数索引)

我们需要两层循环
一层控制圈数
一层控制次数
 
ls = [3,4,6,1,2,8,4,2]
# 模板啊啊啊啊啊啊啊啊啊 啊啊啊啊啊啊啊
for i in range(len(ls)-1): for j in range(len(ls)-1-i): # 如果前面的小于后面的则交换位置 if ls[j] > ls[j+1]: ls[j],ls[j+1] = ls[j+1],ls[j] print(ls) # [1, 2, 2, 3, 4, 4, 6, 8] 成功实现

 

 
 
 

转载于:https://www.cnblogs.com/pupy/p/11272431.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值