buble sort 冒泡排序
思路
每次比较相邻两个元素大小,如果不是有序的就交换,遍历完当前的范围[start,end],end-1,继续比较[start, end-1]这个范围内的相邻的元素,如果不是有序那就交换,重复这个过程,直到范围内只有一个元素。优化,如果当前范围遍历完也没有需要交换的元素,说明这个列表是有序的,就不用在继续遍历了。
复杂度
时间复杂度:O(n)
空间复杂度:O(1)
代码
arr = [64, 34, 25, 12, 22, 11, 90]# Iterating adjacent two elements, swap if not sorted.
# Each time an iteration finished, the end index of the arr to be sorted minus one as the last element of the current arr is sorted.
# Repeate the above process, until no elements need to be swapped.
n = len(arr)for i in range(n):flag = Falsefor j in range(n-1-i):# j j+1if arr[j] > arr[j+1]:arr[j], arr[j+1] = arr[j+1], arr[j]flag = Trueif not flag:break
print(arr) # [11, 12, 22, 25, 34, 64, 90]
buble sort 冒泡排序相关推荐
- C++Bubble sort冒泡排序的实现算法(附完整源码)
C++Bubble sort冒泡排序的实现算法法 C++Bubble sort冒泡排序的实现算法完整源码(定义,实现,main函数测试) C++Bubble sort冒泡排序的实现算法完整源码(定义, ...
- 排序 时间倒序_经典排序算法之冒泡排序(Bubble Sort)
冒泡排序 ( Bubble Sort ) 冒泡排序,正如它的名字一样,未排序数组中的最大(小)值会依次往上浮.冒泡排序主要有两个基本步骤:相邻元素之间的比较 和 交换位置. 步骤分析: 令待排序序列为 ...
- 算法 - 冒泡排序(C#)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! // - ...
- 排序方法整理Java - 冒泡排序、选择排序、插入排序、快速排序
/*** 排序方法整理* @author zhyea**/ public class Sort {/*** 冒泡排序,从小到大.* 冒泡排序是比较相邻的两个元素,若顺序错误,则执行交换.循环走访序列直 ...
- 冒泡排序的多种写法、逻辑
冒泡排序的多种写法.逻辑 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Bubble Sort - ...
- 简单排序——冒泡排序,选择排序,插入排序,对象排序
2019独角兽企业重金招聘Python工程师标准>>> 1)冒泡排序 package sort; /** * 冒泡排序,每次把数组最大值送到未排序部分的最末端 * @author ...
- 多维数组(冒泡排序,稀疏数组)
多维数组 多维数组可以看成是数组的数组, 比如二维数组就是一个特殊的一维数组, 其每1个元素都是一个一维数组. 二维数组 int a[][] = new int[2][5]; 以上二维数组可以看成一个 ...
- 交换排序图解_排序算法学习分享(二)交换排序---冒泡排序与快速排序
排序,也称为排序算法,可以说是我们学习算法的过程中遇到的第一个门槛,也是实际应用中使用得较为频繁的算法,我将自己对所学的排序算法进行一个归纳总结与分享,如有错误,欢迎指正! (一)排序的分类 排序算法 ...
- 【Java】五种常见排序之-----------冒泡排序
冒泡排序: 原理: 将关键字较小的值不断地上浮,将关键字值较大的不断下沉: 时间复杂度:O(n^2) 空间复杂度:最优(即已经排好序)为0,平均空间复杂度为O(1); 核心代码: for(int i= ...
- 两个for做数据插入_冒泡排序、选择排序、插入排序
排序算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间非比较类排序:不 ...
最新文章
- python之路---进程
- Cisco防火墙技术汇总[转贴]
- python+selenium自动化测试——浏览器驱动
- Oracle truncate table 与 delete tabel的区别(转)
- SAP Spartacus User form属性的运行时字段明细
- 面向对象进阶-反射(二)重要知识点
- CSS清除行内元素之间的HTML空白
- 函数调用过程(栈桢)
- 10 个在线正则表达式测试网站。
- docker 完成 redis集群搭建
- EP100的局部地址、逻辑地址和全局地址
- linux系统网络代理设置
- python中的sep函数_Python中sep是函数吗?该怎么使用?_后端开发
- 数据库事务的四大特性和隔离级别,一文带你看通透
- 音符起始点检测(音频节奏检测)(6)
- android 局域网 发现,局域网内android设备发现及通讯
- HEVC代码学习15:AMVP相关函数
- U盘制作windows启动安装盘后,U盘容量缩小
- GNU/Linux 初学之旅(转)
- matlab pdepe函数边界,科学网-使用MATLAB中pdepe函数求解一维偏微分方程-邓浩鑫的博文...
热门文章
- 计算机怎么使用远程桌面工具,远程桌面工具,教您如何使用远程桌面工具mstsc连接远程桌面...
- 【每日一题】LeetCode 458. 可怜的小猪(思路清奇)
- 传统java项目根据环境使用多配制文件策略
- 第二证券:高送转股票是什么?股票高送转之后股价会怎样?
- 果园机器人反思稿_《果园机器人》教学反思(精选5篇)
- linux共享内存是什么意思,linux系统监视器中的内存和共享内存分别指什么呀?
- 后PC时代科技投资新思路
- 【计算机毕业设计】汽车保养系统小程序
- Next.js+React+Node系统实战,搞定SSR服务器渲染-纪侯去国何时返
- ECNU Problem #3263 丽娃河的狼人传说(区间贪心)