冒泡排序(Bubble Sort)是一种简单的排序算法。

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
原理:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

#定义冒泡排序的函数
def BubbleSort(num_list):# for循环来计算要进行几次总体循环for i in range(len(num_list)-1):# 用for循环来进行循环# len(num_list)-i-1# 每次比较过后最后一位都是最大的所以不用再进行比较所以  (num_list)-i# 比较是成对进行的所以要再 -1     len(num_list)-i-1for a in range(len(num_list)-i-1):# 进行比较if num_list[a]>num_list[a+1]:# 如果前一个数比后一个数大  就将两个数的位置对调(用拆包和组包的方法)num_list[a],num_list[a+1]=num_list[a+1],num_list[a]
num=[21,11,258,13,556,58,95,3]
BubbleSort(num)
print(num)    # 最后的排序结果会直接将原数据进行改变

在这个案例中 num 列表中的每轮结束数字变化情况如下:
初始列表:[21,11,258,13,556,58,95,3]
第一轮:[11,21,13,258,58,95,3,556] (这里的556已经是这个列表中最大的数了所以不再参与下一轮的循环比较)
第二轮:[11,13,21,58,95,3,258,556] (这里的258已经是这个列表中倒数第二大的数了所以也不再参与下一轮的循环比较)
第三轮:[11,13,21,58,3,95,258,556] (这里的95与前面的两个数及之后的几个数均同理)
第四轮:[11,13,21,3,58,95,258,556]
第五轮:[11,12,3,21,58,95,258,556]
第六轮:[11,2,12,21,58,95,258,556]
第七轮:[2,11,12,21,58,95,258,556]

因为这个过程就像水下的气泡不断的向上往水面漂浮,因此成为冒泡函数!

python中咕噜咕噜的冒泡函数相关推荐

  1. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  2. python函数分几种_简单了解Python中的几种函数

    python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter.map.reduce.lambda.yield lambda lambda函数的使用方法:在lam ...

  3. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...

    Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...

  4. python中的高阶函数

    python中的高阶函数 文章目录: 1 什么是高阶函数? 1.1 高阶函数:一个函数的`函数名`作为参数传给另外一个函数 1.2 高阶函数:一个函数返回值(return)为另外一个`函数` 2 py ...

  5. Python编程语言学习:python中与数字相关的函数(取整等)、案例应用之详细攻略

    Python编程语言学习:python中与数字相关的函数(取整等).案例应用之详细攻略 目录 python中与数字相关的函数 1.对小数进行向上取整 1.1.利用numpy库 1.2.利用math库

  6. Python中字符串常用处理函数

    ** Python中字符串常用处理函数 ** 1.len( )函数 用len( )函数计算字符串的长度 2.strip( )函数 删除字符串两边的空白符(包括:'\n'.'\t'.'\r') 注:只能 ...

  7. 【Python】Python中str()和repr()函数的区别

    作用 在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或者 repr() . 区别与使用 参考文章:Python 中 str() 和 repr() 函数的 ...

  8. python中比较重要的几个函数_Python 几个重要的内置函数 python中的内置函数和关键字需要背过吗...

    python重要的几个内置函数用法 python内置函数什么用忘不掉的是回忆,继续的是生活,错过的,就当是路过吧.来来往往身边出现很多人,总有一个位置,一直没有变.看看温暖的阳光,偶尔还是会想一想. ...

  9. python items函数用法,Python中dictionary items()系列函数的用法实例

    本文实例讲述了Python中dictionary items()系列函数的用法,对Python程序设计有很好的参考借鉴价值.具体分析如下: 先来看一个示例: import html # availab ...

最新文章

  1. 设置cl.exe环境变量
  2. cuda win10安装
  3. poj 2398 Toy Storage (计算几何,判断点和线段关系)
  4. 解决WordPress无法上传媒体文件以及无法下载和安装主题与插件的问题
  5. 【转】浅析Java中的final关键字
  6. void main()误区
  7. PackageInstaller 类安装/卸载应用
  8. 易基因|3文一览:ChIP-seq技术在植物转录因子结合位点中的研究(茄子+玉米+水稻)
  9. AE学习的艰难困苦历程
  10. 零基础Matlab Note9--离散数据绘图set(gca, )
  11. 金蝶K/3 固定置产相关SQL语句
  12. 主板芯片介绍---Intel芯片组(一)
  13. java如何进行word文档的合并
  14. 人人网模拟用户登陆行为后进入包贝尔的个人主页
  15. laravel 5.5 The page has expired due to inactivity. Please refresh and try again
  16. postgresql增、删、改、查语句
  17. 风力发电机组机械功率Pm与转子转速Wm关系(Matlab实现)
  18. 亚马逊mysql无法远程连接不上_mysql – 无法从EC2实例连接到RDS实例
  19. 一分钟经理人--阅读总结
  20. 【转】玄奘之路·成果分享会

热门文章

  1. python做大数据可视化软件_一般用哪些工具做大数据可视化分析?
  2. 通过Unity2D独立开发一款瓷砖式RPG游戏需要学习哪些知识?
  3. 【论文解读 ICLR 2020 | DropEdge】TOWARDS DEEP GRAPH CONVOLU-TIONAL NETWORKS ON NODE CLASSIFICATION
  4. IEEE Fellow梅涛:计算机视觉的前沿进展与挑战
  5. Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs(贪心+思维)
  6. 新东方雅思词汇---7.4、cap
  7. 电视hdr测试软件,4K电视HDR尽量选择yuv,效果最好,有效解决HDR下画面发白!
  8. 精确拐点交易体系之追涨停策略
  9. 计算机可以查到刻录光盘的记录,光盘刻录信息记录在什么位置上
  10. 频谱仪测试gsm信号测试软件,浅谈GSM ORFS输出频谱测试