JS冒泡排序详解

JS排序之冒泡排序详解 本文为大家分享了JS冒泡排序的具体代码,供大家参考,具体内容如下 说明 时间复杂度指的是一个算法执行所耗费的时间 空间复杂度指运行完一个程序所需内存的大小 稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面 不稳定指,如果a=b,a在b的前面,排序后可能会交换位置 –JS冒泡排序– 原理 依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排到前面。依照这个规则进行多次并且递减的迭代,直到顺序正确。 时间复杂度,空间复杂度,稳定性 平均时间复杂度O(n*n) 最好情况O(n) 最差情况O(n*n) 空间复杂度O(1) 稳定性:稳定 冒泡排序的写法 var ex 立即下载

以下是引自百度百科中对冒泡排序相对专业的解释:

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

冒泡排序

在JavaScript代码中是一下形式:

<script>
         var arr=[4,2,7,2,5,8,0,4,5,7,3,8,9];   
            function sorts(arr){
            var len=arr.length-1;
            for(var i=0;i<len;i++){
                for(var j=0;j<len-i;j++){
                    if(arr[j]>arr[j+1]){
                        var temp=arr[j+1];
                        arr[j+1]=arr[j];
                        arr[j]=temp;
                    }
                }
            }
        }

        sorts(arr);

        console.log(arr);
</script>

运行结果如下:

运行结果

代码详解:

冒泡排序  排序的基本原理

        i 的目的是做多少轮的 比较   j和j+1是前后数据比较

        var arr=[4,1,7,2];

         i==0

         arr[i]=4

        j=0  arr[j]=4   arr[j+1]=1    4,1,7,2---->1,4,7,2  

        j=1  arr[j]=4  1,4,7,2--->1,4,7,2

        j=2  arr[j]=7  1,4,7,2--->1,4,2,7

        #### j=3  arr[j]=7 arr[j+1]不存在   因为j+1超过数组的长度,所以j必须是长度-1

          

        i==1;

        j==0 arr[j]=1    1,4,2,7--->1,4,2,7

        j==1 arr[j]=4    1,4,2,7--->1,2,4,7

        ###j==2  上面一次循环中放在最后的是最大的,所以不需要循环到2

 

         i==2;

        j=0  arr[j]=1    1,2,4,7-->1,2,4,7

全网最全的AItium Designer 16下载资源与安装步骤 Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。... 阅读详情

相关推荐

基于 YOLO + SAM 的自动图像标注实战

摘要: 本文提出一种基于YOLO检测和SAM分割的自动化数据标注流水线方案,通过YOLO定位目标并生成检测框,再以检测框为提示驱动SAM完成精细分割,最终输出YOLO格式的标注文件。该方案将人工标注升级为半自动流程,显著提升标注效率,尤其适用于多类别、大规模图像的实例级标注需求。代码模块化设计支持模型灵活替换,并集成异常处理与进度可视化功能。虽依赖YOLO检测质量且对小目标存在局限,但作为工程落地方案,可有效降低私有数据集构建成本,适用于工业检测、遥感等场景的冷启动标注。

qq_64366203的博客 1147

冒泡排序_JavaScript冒泡排序详解

冒泡排序概述冒泡排序是通过遍历待排序的数列,一次比较两个元素,根据大小调换位置,直到把最大的或最小的冒出来的排序方式。与选择排序、插入排序是比较常见的排序方式,也非常好理解。冒泡排序平均时间复杂度是:O(n^2)步骤是:1、先建立两个循环,外循环用于遍历整个数组,内循环遍历待排序的区间。2、内循环每次都从第一项开始,将该项与后项进行比较,再两两交换,一直到待排序结尾。3、重复第二项,一直到数组遍...

weixin_33736386的博客 291

一致性总线CMN600AE-ARM系列

主要介绍一致性总线CMN600AE,根据arm官网的spec来概述其模块。提示:以下是本篇文章正文内容,下面案例可供参考CMN600ae是基于Mesh拓扑结构,对外支持AMBA CHI/ACE-LITE等接口,内部改用路由结构转发数据,并提供硬件一致性和系统缓存,还支持多芯片互联。CMN600在T16FFC上可以做到2Ghz,另外AE版本增加了车轨芯片的安全功能,总线内部采用EDC检查,接口采用的奇校验。

tujiuguo3994的博客 6297

javascript冒泡排序详解---kalrry

<script type="text/javascript" > // 假如有 2,4,7,5,3,6,1 这组数 /* 第一轮: i=0; j(内层循环)循环 6次,内层循环做的工作:相邻两个数比较,大的最终会放在后面,小的在前,一次循环 外层循环控制次数,内层循环做判断 j=0 1 2 3 4 5 2 2 2 2 2 2 2

kalrry 1412

视觉SLAM十四讲slambook2示例代码所有依赖库的编译安装教程(VTK、OpenCV3、ceres、Sophus、g2o、Eigen、Pangolin、googletest等)

这是2021年的最后一篇博客~ 新年快乐! 0 准备工作   首先需要先安装cmake编译器: sudo apt-get install cmake   以及,将十四讲的示例代码克隆下来(十四讲的源码地址点击这里): git clone --recursive https://github.com/gaoxiang12/slambook2.git   由于里面的3rdparty文件夹内所有内容都来自于其他github仓库,所以需要加上--recursive参数,不然克隆下来的内容不完整。   如果你.

zeeq的博客 7839

YOLOv11模型压缩技术全面对比:剪枝、量化、蒸馏的原理与实战

YOLOv11模型压缩技术综述 模型压缩技术是解决计算资源受限环境下部署深度学习模型的关键。本文系统介绍了YOLOv11模型压缩的三种核心技术:剪枝、量化和蒸馏。剪枝技术通过移除冗余参数实现模型轻量化,包括结构化剪枝(通道/卷积核剪枝)和非结构化剪枝;量化技术通过降低数值精度(如FP32→INT8)减少存储和计算量;蒸馏技术则利用教师模型指导学生模型训练,在保持精度的同时减小模型规模。三种技术可单独或组合使用,在工业质检、智慧安防等边缘计算场景中发挥重要作用,使YOLOv11在保持80%精度的同时减少70%

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 579

JavaScript算法——冒泡排序

一、概念 冒泡排序(Bubble Sort)也叫气泡排序、泡沫排序,是一种比较简单的排序算法。 它通过遍历数组,比较相邻的两个元素,如果前一个元素比后一个元素大,则交换它们的位置,这样第一次遍历后数组的最大元素就排在了数组的末尾。采用相同的方法再次遍历,直至整个数组都有序为止。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端;这样,大的数就移动到了后端。 二、算法描述 比较相邻的元素。 如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这

诸葛韩信--一个前往前端不归路的浪子 2677

零基础快速学习 ABAP 读者意见反馈和下一步写作计划表

大家在学习教程过程中,如果有任何关于 SAP ABAP 开发方面想了解的内容,可以直接在教程各篇文章下评论留言,我会将大家的意见统一汇总到下面的表格,作为我更新教程的内容参考来源之一。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4273

JavaScript:数组排序(冒泡排序)

本文主要记录JavaScript中的数组排序,Array对象sort()方法的相关内容,以及冒泡排序的实现过程;

m0_65029152的博客 5290

【项目解析】2KW 230V 数字逆变器控制系统(二)

【项目解析】 2KW 230V 数字逆变器控制系统(一) 项目的 交流输出电压 并不是单纯一个电压环就能控制好的,而是典型的 双环控制架构:最终占空比控制量会经过计算: 然后写入 单片机 TMM 定时器的比较寄存器 (TMGRA0/TMGRD0/TMGRC1), → 定时器输出互补 PWM, → 驱动 IGBT 全桥, → 经过 LC 滤波形成 230 VAC / 50Hz 的正弦电压。总结交流电压是双环控制的结果:目标/作用:把输出 RMS 电压稳到目标(例如 230 VAC);在母线波动与负载变化下

Naiva的博客 1297

1、使用Spark SQL查询Databricks:全面指南

本博客全面介绍了如何使用Spark SQL在Databricks平台上进行高效的数据查询与分析。内容涵盖SQL基础操作、数据过滤、复杂查询技巧、简单与高级计算、数据聚合、日期处理等核心主题,适合数据分析师、开发人员及SQL学习者。通过逐步讲解和实用示例,帮助读者掌握从入门到高级的SQL技能,并提供学习路径建议和免费代码资源,助力实际数据分析工作。

redis7keeper的博客 90

js实现冒泡排序

冒泡排序原理: 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比比较 白话就是:比如有6个数,你需要比较5趟,这......

不想起床 7万+

微信开发 - 最新第三方网站接入微信登录、微信支付时,本地 redirect_uri 参数错误导致无法调试的解决方案(微信开放平台)完美解决每次都需要部署到线上测试,在本地使用本地 ip 就能轻松调试

redirect_uri参数错误,微信第三方登录,没有服务器时的测试方法,微信开放平台的回调域名怎么设置为本地域名IP,微信登录微信支付每次调试都需要放到服务器上怎么办,微信登录支付业务在本地调试不了怎么办,在本地怎么测试微信支付和登录,微信第三方登陆本地测试,怎么在本地进行测试,微信回调域怎么设置为本地IP,微信扫码登录redirect_uri参数错误,微信开放平台,微信开放平台开发的第三方登录和支付,vue2,nuxt2,vue3,nuxt3,uniapp,微信开放平台,公众号,微信支付,微信登录授权,

🏆 前端领域优质创作者 8791

js冒泡排序详解

js中的冒泡排序,就是把相邻的两个数据进行比较,如果顺序相反就交换位置,直到所有的数据按照升序(从小到大)或降序(从大到小)的方式进行排列; 例: var arr=[5,4,3,2,1];用冒泡排序把这个数组升序排列,也就是把数组变为[1,2,3,4,5]; 第一轮:arr=[5,4,3,2,1]; 1、比较5和4,5大于4,是降序,交换位置,现在数组为[4,5,3,2,1]; 2、比较5和3,5...

m0_46382643的博客 655

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JavaScript实现冒泡排序详解

N个数字来排序,两两比较小靠前,外层循环N-1,内层循环N-i-1

莫踌躇 352

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Js冒泡排序详解

简介 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元 素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再 需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 算法描述 比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一...

weixin_46389011的博客 214

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

js实现冒泡排序(详解)

冒泡排序是js中比较好理解的一种排序算法 基本原理:比较相邻的两个数。如果第一个比第二个大,就交换他们两个 随机选取10个 1-100的数 放到数组中 var list = []; for(var i=0;i<10;i++){ var num = Math.round(Math.random()*100); // list[i] = num; ...

chu1171723372的博客 1942

js冒泡排序_js 冒泡排序算法详解

对数组进行 冒泡排序 算是比较简单的,冒泡排序也是容易理解的一种排序算法了,在面试的时候,很可能会问到。今天来说一下冒泡排序。算法简介冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”实现原理数组中有n个数,比较每相...

weixin_39611340的博客 284

js冒泡排序思路过程详解及优化

排序: 就是把一个乱序的数组,通过我们的处理,让他变成一个有序的数组。 冒泡排序基本思路: =>先遍历数组,让挨着的两个进行比较,如果前一个比后一个大,那么就把两个数据换个位置 =>数组遍历一遍以后,那么最后一个数字就是最大的那个了 =>然后进行第二遍遍历,还是按照之前的规则,第二大的数字就会跑到倒数第二个位置了 =>以此类推,最后就会按照顺序把数组排好了 // 1 先准备一个乱序的数组 var arr = [3, 1, 5, 6, 4, 9, 7, 2, 8]; // 2 先不急着

qq_44813731的博客 553

10个数冒泡排序流程图_js 冒泡排序算法详解

对数组进行 冒泡排序 算是比较简单的,冒泡排序也是容易理解的一种排序算法了,在面试的时候,很可能会问到。今天来说一下冒泡排序。算法简介冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”实现原理数组中有n个数,比较每相...

weixin_32056343的博客 3579

JS冒泡排序案例详解

使用 split(‘’) 方法将字符串 arr 转换为一个字符数组 characters,每个字符成为数组中的一个元素。这行代码从页面上获取一个输入框的值(假设输入框的 id 是 bubble-input),并将这个值赋给变量 arr。characters 的值为 [‘d’, ‘a’, ‘c’, ‘b’]。计算字符数组 characters 的长度,并赋值给变量 len。最终结果:[‘a’, ‘b’, ‘c’, ‘d’]。页面上显示的结果为:排序结果:a,b,c,d。arr 的值为 “dacb”。

m0_59778008的博客 531

JS-排序详解-冒泡排序

说明 时间复杂度指的是一个算法执行所耗费的时间 空间复杂度指运行完一个程序所需内存的大小 稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面 不稳定指,如果a=b,a在b的前面,排序后可能会交换位置 JS冒泡排序 原理 依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排到前面。依照这个规则进行多次并且递减的迭代,直到顺序正确。 时间复杂度,空间复杂度,稳定性 平均时间...

前端kk的博客 386

.js冒泡排序详解

.JavaScript冒泡排序详解 /* 冒泡排序 1、定义函数 2、计算数组的长度 3、循环数组中的每一个元素 4、判断数组的前一项是否大于后一项 */ function number(){ //arr.length数组的长度,因为数组的最大下标是数组的长度-1 //把arr.length-1的值储存在变量len中 var len=arr.length-1; //循环数组中的每一个元素, for...

weixin_46386906的博客 164

JS——冒泡排序【详解】

同时,也欢迎关注我的博客,获取更多精彩内容。

m0_64387122的博客 549
上一篇: 怎样在JS中改变Html的宽高属性 怎样改变宽高?
下一篇: 简单的前后端通信 H5中前后段通信是什么?
随便放个文字在这里
博客等级 码龄8年 39粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值