【C语言】js写一个冒泡顺序

用js写一个冒泡排序

 

当然可以。在JavaScript中,你可以使用递归的方式来实现冒泡排序算法。这是一个简单的示例:

 

                    

 

                    

 

                      function bubbleSort(arr) {

    let len = arr.length;

    if(len <= 1){

        return arr; // 如果数组只有一个元素或为空,直接返回

    }

    

    // 从第一个元素开始遍历到倒数第二个

    for(let i = 0; i < len - 1; i++){

        // 如果当前元素大于下一个元素,则交换它们的位置

        if(arr[i] > arr[i + 1]){

            [arr[i], arr[i + 1]] = [arr[i + 1], arr[i]]; // 使用数组解构赋值进行交换

        }

    }

 

    // 递归处理剩下的元素

    return bubbleSort(arr.slice(0, len - 1)).concat(arr[len - 1]);

}

 

// 测试冒泡排序

let numbers = [64, 34, 25, 12, 22, 11, 90];

console.log("Sorted array:", bubbleSort(numbers));

                    

 

                  

冒泡排序的时间复杂度是多少?

 

冒泡排序的时间复杂度主要取决于数组的原始状态。在最好的情况下,即输入数组已经是完全有序的情况下,冒泡排序只需要遍历一次数组,时间复杂度为 O(n),其中 n 是数组长度。

 

然而,在最坏的情况,即输入数组是逆序排列的,每一轮比较都需要交换 n-1 次,总共需要进行 n 轮这样的操作,因此时间复杂度是 O(n^2)。这是因为冒泡排序每次都会考虑相邻的两个元素并可能交换位置,所以随着数组长度的增长,其效率会急剧下降。

 

冒泡排序的空间复杂度是多少?

 

冒泡排序的空间复杂度是O(1),因为它只需要一个额外的常数空间用于存储临时变量,无论输入数组的大小如何变化,需要的额外空间都是固定的。冒泡排序算法通过交换相邻元素来逐步把较大的元素“浮”到数组的顶部,过程中不需要额外的数据结构来辅助整个过程。所以,其空间效率非常高,是一种就地排序算法。

2c1ad079204349548a1810849191abf5.jpg

51baa4ee1cfd4d44ac89f75a8a215d22.jpg 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/12931.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode3345. 最小可整除数位乘积 I

Every day a Leetcode 题目来源&#xff1a;3345. 最小可整除数位乘积 I 解法1&#xff1a;枚举 至多循环 10 次&#xff0c;一定会遇到个位数为 0 的数字&#xff0c;数位乘积是 0&#xff0c;一定是 t 的倍数。 所以暴力枚举即可。 代码&#xff1a; /** lc appleetcod…

element的from表单校验问题 —— 校验内容正确、但触发错误提示

问题&#xff1a;二次封装了el-radio&#xff0c;在选择后触发了form的校验&#xff0c;并提示了错误。 分析&#xff1a;输出radio选择后的value值是正确&#xff0c;但还是触发了错误校验提示&#xff0c;可能纯在以下几个问题 1. v-model 绑定的form参数和rules不一致 2. e…

工业相机选取

1.相机分类&#xff1a; 1.1 在相机曝光方式中&#xff0c;全局曝光和卷帘曝光是两种主流技术。CCD相机通常采用全局曝光方式&#xff0c;而CMOS相机则可能采用卷帘曝光。 面阵相机与全局曝光关联与区别 关联&#xff1a;面阵相机可以使用全局曝光作为曝光方式&#xff0c;但…

使用Windows自带的IIS搭建FTP服务端

1、启用IIS功能 2、打开IIS 3、将默认的站点删除 4、创建FTP服务端 &#xff08;1&#xff09;选中站点&#xff0c;然后点击鼠标邮件&#xff0c;点击添加FTP站点 &#xff08;2&#xff09;指定站点名称和物理路径 物理路径&#xff1a;FTP服务端数据的路径&#xff0c;F…

研界的福尔摩斯——扩增子+qPCR

微生物在生物地球化学循环、动植物健康等多种领域发挥作用&#xff0c;因此&#xff0c;精确测量微生物绝对丰度对理解其与人类健康、植物生长等的关系至关重要。 常规扩增子测序分析只能解析样本中的物种组成和其相对丰度信息&#xff0c;并不能反映样本每种微生物的真实数量…

期权懂|期权到期了,可以不行权吗?

期权小懂每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 期权到期了&#xff0c;可以不行权吗&#xff1f; 期权到期后&#xff0c;投资者并非必须行权。如果行权无利可图或不符合预期收益&#xff0c;可以选择放弃行权&#xff0c;让期…

SL1571B 输入5V2A或单节锂电池,升压12V 10W 升压恒压芯片

一、概述 SL1571B是一款高功率密度的异步升压转换器&#xff0c;专为便携式系统提供高效且小尺寸的解决方案。它内置MOS管&#xff0c;具有120mΩ功率开关&#xff0c;支持宽输入电压范围&#xff0c;并具备多种保护功能。 二、主要特性 输入电压范围&#xff1a;SL1571B的输…

接口测试vs功能测试

接口测试和功能测试的区别&#xff1a; 本文主要分为两个部分&#xff1a; 第一部分&#xff1a;主要从问题出发&#xff0c;引入接口测试的相关内容并与前端测试进行简单对比&#xff0c;总结两者之前的区别与联系。但该部分只交代了怎么做和如何做&#xff1f;并没有解释为什…

ubuntu20.04_从零LOD-3DGS的复现

环境要求 创建环境 conda create -n lod-3dgs python3.71. 安装CUDA11.6和相应cuDNN。 1.1 CUDA CUDA安装参考CUDA1&#xff1b;CUDA11.6&#xff0c;安装过程相似。 1.2 cuDNN 参考&#xff0c;下载对应版本后复制到对应CUDA里面。 cp cuda/lib64/* /usr/local/cuda-11…

IIS安装,Sql Server安装

在Windows操作环境下&#xff0c; 首先检查是否安装IIS&#xff0c;在“管理工具”中查看目录中是否存在Internet Information Services&#xff08;IIS&#xff09;的文件&#xff0c;存在则IIS已经安装成功。未安装则使用以下步骤&#xff1a; 1、使用winR打开控制面板&…

【LeetCode】【算法】64. 最小路径和

LeetCode 64. 最小路径和 题目描述 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 思路 思路&#xff1a;这种题太典了&#xff0c;典…

win11安装wsa 安卓

今天和大家分享一个如何在windows10/11/12操作系统上使用Windows Subsystem for Android安卓APK应用系统的教程&#xff1b;网络上有很多教程&#xff0c;但是来回折腾很久也是各种问题&#xff0c;经过研究&#xff0c;找到一套完整有效的方案&#xff1b; 第一步、进入系统设…

美食网的设计与实现

摘 要 随着科技的发展、生活水平的提升&#xff0c;人们更加注重饮食搭配和饮食健康。通过网络技术来加强美食与健康知识的普及是当前一种可行的措施。通过网页浏览美食网&#xff0c;不仅可以普及每道美食的做法&#xff0c;通过制作美食来缓解心情&#xff0c;还可以通过美…

2024-2025年EI会议时间表,把握未来学术研讨机遇

2024-2025年多场国际学术会议将在中国多地举办&#xff0c;涵盖网络、通信、AI等领域&#xff0c;均支持EI等检索。会议时间、地点及检索信息已提供&#xff0c;涉及北京、淮北、深圳等城市。 以下是部分精品学术会议基本信息&#xff0c;欢迎点击链接查看&#xff1a; 第二届…

QML —— 圆形波浪进度条控件(附上源码)

效果 说明 QML中使用画布元素(canvas element),使用画布元素可画出各种各样的图形,同时允许脚本绘制。画布元素提供了一个依赖于分辨率的位图画布,也可以使用JavaScript脚本来绘制图形,制作游戏或者其它的动态图像。QML中的画布元素是基于HTML5的画布元素来完成的。    …

echarts引入自定义字体不起作用问题记录

echarts引入自定义字体不起作用问题记录 1、问题描述 初始化界面字体不作用&#xff0c;当界面更新后字体样式正常显示 2、原因描述 这通常是由于字体文件加载延迟导致的。ECharts 在初始化时可能还没有加载完字体文件&#xff0c;因此无法正确应用字体样式 3、解决方案 …

UE5.4 PCG 生成藤蔓墙体

一、新建Actor&#xff0c;添加Spline组件&#xff0c;挂上PCG组件&#xff0c;设置“墙体”和“植被”为静态网格体变量 二、编写PCG_Wall 1.生成墙体 2.生成墙体植被

【网络】子网掩码

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是子网掩码&#xff0c;并且能熟练掌握子网掩码的相关计算。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会…

Worldly平台更新Higg FEM 2024模块价格及购买指南

近日&#xff0c;LEVERAGE供应链管理从美国可持续服装联盟&#xff08;Cascale&#xff09;验证官方Worldly平台模块订阅更新中获悉&#xff0c;FEM2024模块价格更新的重要信息。此次更新涉及工厂环境模块&#xff08;FEM&#xff09;和工厂社会劳工模块&#xff08;FSLM&#…

Rocky9通过Docker-compose部署zabbix 7.0.5

Rocky9通过Docker-compose部署zabbix 7.0.5 1. 实验环境架构2. Zabbix-Server准备工作2.1 更新仓库2.2 安装docker-ce2.3 安装docker-compose 3. 安装Zabbix项目3.1 克隆项目3.2 预下载镜像3.3 启动Zabbix 4. 启动web管理端4.1 登录web管理页4.2 修改时区和语言 5. Agent安装配…