冒泡排序(通俗易懂+例子)

冒泡排序法的原理与举例 冒泡排序法是一种排序算法, 阅读详情

冒泡排序(通俗易懂+例子)

冒泡排序很好理解,简单来说,就是每次选定第一个数,然后和后一个数进行比较

①选择a[0],如果比a[1]大,则进行交换,否则a[1]和a[2]进行比较,以此类推

②一共比较数字总数-1次

下面为详细过程

初始2135326840
第一次1233256408
第二次1232354068
第三次1223340568
第四次1223304568
第五次1223034568
第六次1220334568
第七次1202334568
第八次1022334568
第九次0122334568

代码

//冒泡排序
int main()
{
	int tmp;
	int a[10]={2,1,3,5,3,2,6,8,4,0};
	for(int i=0;i<9;i++)
	{
		for(int j=0;j<9-i;j++)
		{
			if(a[j]>a[j+1])
			{
				tmp=a[j];
				a[j]=a[j+1];
				a[j+1]=tmp;
			}
		 } 
	}
	for(int i=0;i<10;i++)
	{
		printf("%d ",a[i]);
	 } 
}

冒泡排序特征:

①时间复杂度

最好平均最坏空间复杂度
O(n)O(n^2)O(n^2)O(1)

当原始序列“正序”排列时,冒泡排序总的比较次数为n-1,移动次数为0,也就是说冒泡排序在最好情况下的时间复杂度为O(n);

当原始序列“逆序”排序时,冒泡排序总的比较次数为n(n-1)/2,移动次数为3n(n-1)/2次,所以冒泡排序在最坏情况下的时间复杂度为O(n^2);

当原始序列杂乱无序时,冒泡排序的平均时间复杂度为O(n^2)。

冒泡排序排序过程中需要一个临时变量进行两两交换,所需要的额外空间为1,因此空间复杂度为O(1)。

(通俗易懂 图文并茂)算法入门之冒泡排序Python版 文章目录前言什么是冒泡排序Python代码补充说明 前言 这里我们就直接简单粗暴的给原理跟代码看完之后在看一些比较官方的说明!! 如果开头看不明白的先看 补充说明。 如果只想看代码的直接点目录的 Python代码 有两种写法。 什么是冒泡排序 用自己的话讲就是有一个数组,arr[i] 比arr[ i+1] 大,则它们交互位置,则否不交换。 什么意思? 怎么说? 看图如下。 请忽略字丑······· 图中 p1 > p2 交换,并向后移一位。 p1 < p2 不交换,继续向后移一位。 这样 阅读详情

相关推荐

Arduino智能小灯DIY:人体感应+光线感应+蓝牙控制全攻略(附完整代码)

本文提供了一份完整的Arduino智能小灯DIY制作指南。项目融合了人体感应、光线感应与蓝牙控制三大功能,通过详细的硬件清单、电路连接图、核心逻辑讲解及附带的完整代码,手把手教你打造一个能自动感知环境与人、并支持手机远程控制的智能照明装置,是入门智能家居和物联网开发的绝佳实践。

java5的博客 1094

冒泡排序经典案例

一、购物问题   小明的女朋友最喜欢在网上买买买了,可是钱包里钞票有限,不能想买啥就买啥。面对琳琅满目的物品,她想买尽可能多的种类,每种只买一件,同时总价格还不能超过预算上限。于是她请小明写程序帮她找出应该买哪些物品,并算出这些物品的总价格。以下是代码实现: import java.util.Arrays; public class Test { public static voi...

a116385895的博客 7862

图信号处理中的多尺度分析:图小波变换与图傅里叶变换的对比与应用

本文深入探讨了图信号处理中的多尺度分析方法,重点对比了图小波变换(GWT)与图傅里叶变换(GFT)的技术特点与应用场景。通过分析图的拓扑结构,GWT展现出强大的局部洞察力,适用于异常检测和社区发现;而GFT则擅长全局频率分析,适合趋势分析和信号去噪。文章结合实战案例,为读者提供了方法选型指南和前沿进展,帮助开发者在生物信息学、社交网络分析等领域高效应用这些技术。

weixin_30369041的博客 406

冒泡法排序c语言算法步骤,冒泡排序 - 数据结构与算法教程 - C语言网

1.复杂度与稳定性算法时间复杂度最坏情况:O(n^2)最好情况:O(n)平均情况:O(n^2)空间复杂度:S(n)=O(1)稳定性:稳定排序2.过程介绍(以顺序为例)1.从第一个元素开始逐个比较相邻的元素。如果第一个比第二个大(a[1]>a[2]),就交换他们两个。2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。此时在这一点,最后的元素应该会是最大的数,我们也称呼一遍这样的操...

weixin_39785286的博客 375

利用绝对式编码器实现电机无限旋转的配置与优化

本文详细解析了如何利用绝对式编码器实现电机的无限旋转功能。通过切换驱动器编码器工作模式、精确计算逻辑位置范围等关键配置步骤,解决了传统方案在多圈计数溢出时的定位难题。该方案无需硬件改造,适用于大型回转台、连续供料系统等需要大范围连续绝对定位的自动化场景。

weixin_29184371的博客 239

Labview_DQMH框架学习1--浅析

本文主要结合一个相对容易理解的例子,阐述 DQMH 框架的工作原理,希望对初学者有一定的帮助。

hrbeuxn的博客 3049

排序算法---冒泡排序---详细代码及过程分析

排序算法是考研常考内容,搞清如何排序以及怎样实现对于考试有很大的帮助

weixin_45535091的博客 470

OpenPose 论文理解

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation paper: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields link: OpenPose paper...

JustForYou的博客 2万+

冒泡排序(java)

过程: 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。 时间复杂度: O(n2) 示意图: 初始版: import java.util.Arrays; public class Main { public static voi...

QinLaoDeMaChu的博客 538

跨境电商ERP开发之Shopee开发者账号申请

引言:由于电子信息技术和经济全球化的进一步发展,电子商务在国际贸易中的影响力和关键作用日渐突显,已变成中国出口贸易的市场趋势。跨境电商未来的发展前景必定是有助于减少经济成本、推动全球贸易便利化,有助于提高国内群众福祉,有助于打造良好的营商环境,从而推动经济长期健康发展。 gitee仓库地址: https://gitee.com/naturalwish/SSERP/tree/master 以下授权教学同ShopeeOpen Platform - Developer Guide 申请流程 ..

naturalwish的专栏 3637

手把手教你用Apollo Dreamview调试自动驾驶感知模块(附数据包下载)

本文详细介绍了如何使用百度Apollo平台的Dreamview工具调试自动驾驶感知模块,包括环境配置、数据加载、感知问题定位和多传感器融合调试等关键步骤。通过实战案例和参数调整技巧,帮助开发者快速掌握自动驾驶感知模块的调试方法,提升开发效率。

weixin_29084111的博客 138

冒泡排序通俗易懂例子

冒泡排序 通俗易懂的例子

weixin_64275663的博客 247

声音源定位:利用YOLO与麦克风阵列定位声音来源YOLOv5、YOLOv8、YOLOv10

YOLO(You Only Look Once)是一个用于目标检测的深度学习模型。YOLO的最大特点是其通过一次前向传播即可完成多个目标的检测,速度和精度相对其他目标检测算法具有显著优势。YOLO模型的版本不断更新,从YOLOv1到YOLOv10,算法精度和速度都有了显著的提升。声音源定位是利用多个麦克风阵列收集的声音信号,通过算法计算声音源的位置。声音源定位的关键在于准确估计每个麦克风的声音到达时间,从而确定声音源的空间坐标。基于时延估计(TDOA)

YOLO 673

【你奶奶都能听懂的C语言】实战篇 第2期 冒泡排序

ok啊,上一期我介绍了找最大值的一种方式,今天我们来点跟进阶的,一组数据中将数据排序,方法叫冒泡排序。 什么是冒泡排序,其实就是两个数相比较,然后按照大小顺序交换位置,例如一组数据 如果一直比较下去,不难想象这组数据中的最大值9就会放在最后,一直循环下去的话,这组数就会从小到大的排列下来了。介绍完,代码中如何实现呢,首先万年不变 假设我们比较十个数,因为数较多,我使用for循环来为scanf函。这里我引sizeof操作符,用你奶奶都能听懂的话来解释,现在你奶奶要让你将大小各异的东西分类放进不同的箱子里,

2501_93298789的博客 611

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

冒泡详解(分析每一步)

对于冒泡,我相信大家都不陌生,但怎么去理解呢,死记硬背可不好(ღ˘⌣˘ღ),最关键的就是那个交换数值的一步。( •͈ᴗ⁃͈)ᓂ- - -♡ 就假设冒五个数的泡 int temp; for(int i=1;i<5;i++) { for(int j=0;j<5-i;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1];

小橙菜鸡的博客 627

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【排序算法】史上最通俗易懂的【冒泡排序】详解

按照套路,先来一通理论层面的陈述: 1、冒泡排序基本思想: 通过对待排序序列从前向后(从下标较小的元素开始),依次对相邻两个元素的值进行两两比较,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就如果水底下的气泡一样逐渐向上冒。 2、先以一个数组讲解一下,然后再写代码: 待排序数组:3,9,-1,10,20 第一轮排序: (1)3,9,-1,10,20 ----3跟9比较,不交换 (2)3,-1,9,...

Aimo_哈撒的博客 16万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

写给女友的冒泡排序,图文并茂通俗易懂。

排序之冒泡排序

Jack-Cui 2万+

排序算法之冒泡排序,通俗易懂,简单明了

通俗易懂的去理解冒泡排序以及对冒泡排序进行优化

ocean&21的博客 5264

冒泡排序 --学习(二)

冒泡排序学习 #include using namespace std; void BubbleSort(int ary[], int length) { int i,j; for (i = 0; i< length; i++) { for (j =1; j<length-i; j++) { if (ary[j-1] > ary[j]) { swap(ary[

SelfImprovement 1552

最通俗易懂的冒泡排序原理

冒泡排序: 排序:指数据从小到大排列或者从大到小排列 数组中的排序:指的是将数组元素进行从小到大排列或者从大到小排列 冒泡排序算法简介: 比较相邻的元素,前一个比后一个大(或者前一个比后一个小)调换位置 每一对相邻的元素进行重复的工作,从开始对一直到结尾对,这步完成后,结尾为最大或 最小的数. 针对除了最后一个元素重复进行上面的步骤 重复1-3步骤直到完成排序 //第一步 思路 先进行第一组排序 依次比较 交换位置 //内层循环 控制次数 javascript <script>

FellAsleep的博客 2951

Java冒泡排序算法,通俗易懂

冒泡排序 概念 依次比较相邻的两个数,将数字小的放在前面,数字大的放在后面。 示例代码 /** * 冒泡排序 */ public class BubbleSort { public static int[] sort(int[] arr){ for (int i = 1; i < arr.length; i++) { // 外层for循环控制的是总的比较趟(轮)数 for (int j = 0; j < arr.length-i; j++

qq_44826994的博客 373

Shell之冒泡排序法(通俗易懂呦!)

本文介绍了一个shell当中的冒泡排序,简单来说,两两比较,将数值最大的赋给右边,采用双层循环,外层为轮,内层为次数。定义轮数为“i" ,次数为“j-i ”

下一个艺术家 1224

最通俗易懂的冒泡排序 讲解

冒泡排序的原理非常简单,它重复地走访过要排序的数列,一次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。(例:从小到大、首字母从A到Z 等)。 关于冒泡排序为什么要 i < arr.length - 1 和 j < arr.length - 1 - i 的解释(理解): 对于一个有i个数字的数列,完成排序就需要比较 i-1 轮,这就是为什么外层循环的判断条件是:i ...

weixin_43935152的博客 1000

[通俗易懂的C++基础算法] 冒泡排序

CPP入门 冒泡排序冒泡排序基本思想举个栗子交换中介变量加减模板代码题目 本文专门写给萌新看,大佬别捶我 qwq 转自我自己的Blog 传送门 友情提示:到我的Blog食用效果更佳,不过加载速度可能会比较拉胯 XD 冒泡排序 照理先抄他一段百度百科: 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是

qq_34600530的博客 715

冒泡排序(通俗易懂)

冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复走访过要排序的元素列,依次比较两个相邻的元素,如果当该对元素顺序不正确时进行交换过来。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序。 注意: 一般情况下,称某个排序算法稳定;指的是当待排序序列中有相同的元素时, 它们的相对位置在排序前后不会发生改变。 假设待排序序列为 (9,4,1,2),如果采用冒泡排序对其进行升序(由小到大)排序,此时不考虑时间复杂度,有多少个元素就进行多少轮排序,则整个排序过程如下所示:

m0_54798309的博客 473

C语言冒泡排序法(通俗易懂类型)

这类方法是c语言新手用的相对较多的一种简单排序方法,接下来我用我自己的理解来解析一下易懂原理。 为了通俗易懂,给一个小的题目来讲解 就是从终端输入5个数,存进数组,然后我们用从小到大的顺序对这个数组进行排序,然后打印在终端。......

m0_58193842的博客 876
上一篇: 招银科技2018春招线上笔试题
下一篇: vue.js学习(7)样式绑定
code_AC
博客等级 码龄12年 255粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值