• 冒泡排序


    冒泡排序:

      以从小到大排序示例:

    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] 成功实现
     
     
     
  • 相关阅读:
    jquery图片播放弹出插件Fancybox
    D3js-API介绍【英】
    ZOJ 3156 Taxi (二分匹配+二分查找)
    linux权限之su和sudo的差别
    CareerCup之1.6 Rotate Image
    [oracle]pl/sql --分页过程demo
    已迁移到http://www.coffin5257.com
    C# 之 集合ArrayList
    Java 序列化Serializable具体解释(附具体样例)
    Android 短信验证码控件
  • 原文地址:https://www.cnblogs.com/pupy/p/11272431.html
Copyright © 2020-2023  润新知