1.冒泡排序定义

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。

2.步骤(升序)

1.较相邻的元素。如果第一个比第二个大,则交换相邻元素。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
5.总共需要进行n-1次冒泡排序过程,n为元素个数。
图例:

冒泡排序为稳定排序,若判断时为 if l[j] >= l[j+1],则为不稳定排序。

3.时间复杂度和空间复杂度

最优时间复杂度:O(n)

最坏时间复杂度:O(n^2)

空间复杂度:O(1)

4.Python代码实现

# 冒泡排序法
def bubble_Sort(arr):# 计算列表长度n = len(arr)for i in range(n):for j in range(0, n - i - 1):if arr[j] > arr[j + 1]:# a = arr[j+1]# arr[j + 1] = arr[j]# arr[j] = aarr[j], arr[j+1] = arr[j+1], arr[j]
array = [61, 29, 25, 12, 22, 39, 89]
print("原列表:")
print(array)
bubble_Sort(array)
print("排序后的列表:")
print(array)

结果:

Python排序算法---冒泡排序相关推荐

  1. python排序算法 ——冒泡排序(附代码)

    python排序算法 --冒泡排序 文章目录 python排序算法 --冒泡排序 一.前言 二.算法描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序 ...

  2. python排序算法——冒泡排序

    1. 图解 2. 代码 from typing import Listclass Solution:# 冒泡排序def bubble_sort(self, nums: List[int]) -> ...

  3. Python排序算法总结

    Python排序算法总结 递归 在正式讲算法之前,先介绍一下递归.递归是一种解决问题的思路. 特点 调用自身 必须有一个明确的结束条件,比如if... 递归的两个阶段: 递推(压栈):到某个阶段,该阶 ...

  4. 带你掌握4种Python 排序算法

    摘要:在编程里,排序是一个重要算法,它可以帮助我们更快.更容易地定位数据.在这篇文章中,我们将使用排序算法分类器对我们的数组进行排序,了解它们是如何工作的. 本文分享自华为云社区<Python ...

  5. Python排序算法[二]:测试数据的迷雾散去

    算法试验中不仅仅要尝试使用不同的写法,更要注意测试所用数据的规律性,它们都会直接影响测试结果. 在上一篇文章<Python 排序算法[一]:令你茅塞顿开,却又匪夷所思>中我们学习了排序算法 ...

  6. python排序算法——归并排序(附代码)

    python排序算法 --归并排序 文章目录 python排序算法 --归并排序 一.前言 二.算法描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序 ...

  7. python排序算法——希尔排序(附代码)

    python排序算法--希尔排序 文章目录 python排序算法--希尔排序 一.前言 二.算法描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序算法 ...

  8. python排序算法——插入排序

    python排序算法--插入排序 文章目录 python排序算法--插入排序 一.前言 二.描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序算法是指 ...

  9. python排序算法代码

    python排序算法代码: def bubble_sort(nums):# 获取列表长度 size = len(nums)# 若列表长度为0或1,则直接返回if size <= 1:return ...

  10. C语言基础排序算法-冒泡排序

    C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...

最新文章

  1. leetcode 179. 最大数
  2. Datawhale团队第一期录取名单!
  3. JavaScript作用域面试题避坑指南
  4. Linux多线程之线程同步
  5. (chap1 web网络基础) URI和URL
  6. sonarqube执行命令遇上的小问题
  7. V-3-3 在没有vCenter的情况下,复制虚拟机
  8. apache camel_在WildFly中将Apache Camel和Spring添加为jboss模块
  9. Verlet integration (Verlet 积分法)
  10. Jdk自带bin目录命令
  11. Rainmeter RocketDock丨Windows美化工具
  12. html加密原理,说说Html5视频加密播放原理
  13. Base64 Base32 Base16全家桶
  14. Intel8251可编程串行扩展RS232串口
  15. 2018服务商口碑榜Top50(4月)重磅出炉
  16. 1999年冬发出第一个论坛帖,弹指二十年后,他们遇见了AI
  17. pgsql在连接的时候报:不支援 10 验证类型。请核对您已经组态。。。
  18. 高效率笔记——5R笔记法(康奈尔笔记法)
  19. 【新人求助】苹果允许开发者制作类似按键精灵的app吗?
  20. 玩游戏计算机频繁重启,win7系统玩lol游戏电脑总是重启如何解决

热门文章

  1. linux开机启动 sogou输入法 xcompmgr .xprofile 黑块
  2. iOS开发篇——C++函数模板介绍
  3. 2012-1-31学习日记
  4. linux下如何在线添加和移除scsi磁盘?
  5. Emmet 简写语法
  6. 3.第一本 docker 书 --- docker 网络
  7. 39.Linux/Unix 系统编程手册(下) -- 能力
  8. 3.jenkins 基础
  9. 2.ubuntu 配置目录
  10. php中global与$_GLOBALS[]的区别