Python排序算法---冒泡排序
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排序算法---冒泡排序相关推荐
- python排序算法 ——冒泡排序(附代码)
python排序算法 --冒泡排序 文章目录 python排序算法 --冒泡排序 一.前言 二.算法描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序 ...
- python排序算法——冒泡排序
1. 图解 2. 代码 from typing import Listclass Solution:# 冒泡排序def bubble_sort(self, nums: List[int]) -> ...
- Python排序算法总结
Python排序算法总结 递归 在正式讲算法之前,先介绍一下递归.递归是一种解决问题的思路. 特点 调用自身 必须有一个明确的结束条件,比如if... 递归的两个阶段: 递推(压栈):到某个阶段,该阶 ...
- 带你掌握4种Python 排序算法
摘要:在编程里,排序是一个重要算法,它可以帮助我们更快.更容易地定位数据.在这篇文章中,我们将使用排序算法分类器对我们的数组进行排序,了解它们是如何工作的. 本文分享自华为云社区<Python ...
- Python排序算法[二]:测试数据的迷雾散去
算法试验中不仅仅要尝试使用不同的写法,更要注意测试所用数据的规律性,它们都会直接影响测试结果. 在上一篇文章<Python 排序算法[一]:令你茅塞顿开,却又匪夷所思>中我们学习了排序算法 ...
- python排序算法——归并排序(附代码)
python排序算法 --归并排序 文章目录 python排序算法 --归并排序 一.前言 二.算法描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序 ...
- python排序算法——希尔排序(附代码)
python排序算法--希尔排序 文章目录 python排序算法--希尔排序 一.前言 二.算法描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序算法 ...
- python排序算法——插入排序
python排序算法--插入排序 文章目录 python排序算法--插入排序 一.前言 二.描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序算法是指 ...
- python排序算法代码
python排序算法代码: def bubble_sort(nums):# 获取列表长度 size = len(nums)# 若列表长度为0或1,则直接返回if size <= 1:return ...
- C语言基础排序算法-冒泡排序
C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...
最新文章
- leetcode 179. 最大数
- Datawhale团队第一期录取名单!
- JavaScript作用域面试题避坑指南
- Linux多线程之线程同步
- (chap1 web网络基础) URI和URL
- sonarqube执行命令遇上的小问题
- V-3-3 在没有vCenter的情况下,复制虚拟机
- apache camel_在WildFly中将Apache Camel和Spring添加为jboss模块
- Verlet integration (Verlet 积分法)
- Jdk自带bin目录命令
- Rainmeter RocketDock丨Windows美化工具
- html加密原理,说说Html5视频加密播放原理
- Base64 Base32 Base16全家桶
- Intel8251可编程串行扩展RS232串口
- 2018服务商口碑榜Top50(4月)重磅出炉
- 1999年冬发出第一个论坛帖,弹指二十年后,他们遇见了AI
- pgsql在连接的时候报:不支援 10 验证类型。请核对您已经组态。。。
- 高效率笔记——5R笔记法(康奈尔笔记法)
- 【新人求助】苹果允许开发者制作类似按键精灵的app吗?
- 玩游戏计算机频繁重启,win7系统玩lol游戏电脑总是重启如何解决
热门文章
- linux开机启动 sogou输入法 xcompmgr .xprofile 黑块
- iOS开发篇——C++函数模板介绍
- 2012-1-31学习日记
- linux下如何在线添加和移除scsi磁盘?
- Emmet 简写语法
- 3.第一本 docker 书 --- docker 网络
- 39.Linux/Unix 系统编程手册(下) -- 能力
- 3.jenkins 基础
- 2.ubuntu 配置目录
- php中global与$_GLOBALS[]的区别