zoukankan      html  css  js  c++  java
  • 【python入门到放弃】冒泡排序

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

    二、冒泡排序的代码:
    1 ls = [10,7,8,2,4,3,9,6,5,1,0]
    2 for i in range(len(ls)-1):   #外部循环,每循环一次,找到一个最大的元素放在后面,循环次数为len(ls)-1
    3     for j in range(len(ls)-i-1):#内部循环,使一个最大的元素跑到最后面
    4         if ls[j] > ls[j+1]:
    5             temp = ls[j]
    6             ls[j] = ls[j+1]
    7             ls[j+1] = temp
    8 print(ls)

    二、冒泡排序注意点:

    有两层循环,我称为内部循环和外部循环
    内部循环:每循环一次,就找出循环列表中最大的元素,把它放在最后面。
         第一次循环:从第一个元素开始,把每一对相邻的元素作比较,前者大于后者的话,交换位置。依次比较,直到把列表的所有元素都比较一遍,筛选出最大的元素 10,把它放在列表的最后一个位置;(理解为第一个冒泡)
         第二次循环:(不包含已经冒出泡的元素)从剩余的第一个元素开始,把每一对相邻的元素作比较,前者大于后者的话,交换位置。依次比较,直到把列表剩余的元素都比较一遍,选出最大的元素9,放在倒数第二个位置;(第二个冒泡)
         ......
         直至循环完成
    外部循环:主要控制内部循环的次数,列表如果有n个元素,就需要冒泡n-1次,把每一个大的元素放在对应的位置上。剩下的最后一个,就是最小的,肯定在第一个位置,就不用比较了。
      
     
  • 相关阅读:
    windows 安装 nodejs指定版本
    Xshell通过ssh登录远程服务器(秘钥)
    CentOS7 防火墙操作
    Linux系统MySQL开启远程连接
    PHP 下载图片文件并压缩文件成zip
    thinkphp 中更新数据字段,同时某字段值++操作(报错TP5.1不支持的数据表达式:[exp]的解决办法)
    layui的loading加载中
    Linux下面安装swoole
    windows 下cmd命令删除文件或者文件夹
    PHP 删除某目录下的全部文件
  • 原文地址:https://www.cnblogs.com/chenglei0520/p/9430661.html
Copyright © 2011-2022 走看看