当前位置: 首页 > news >正文

【C语言】。末尼

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

917430cca1c34edcac904488d9eb9cdd.jpg

e3de45c3eccd4cc2b2615c83b0e29b62.png 

 

相关文章:

【C语言】。末尼

用js写一个冒泡排序 当然可以。在JavaScript中&#xff0c;你可以使用递归的方式来实现冒泡排序算法。这是一个简单的示例&#xff1a; function bubbleSort(arr) { let len arr.length; if(len < 1){ return arr; // 如果数组只有一个元素或为空&#xf…...

【鉴权】深入解析 Token:身份认证的核心技术

目录 引言一、Token 的定义与概念1.1 Token 是什么&#xff1f;1.2 无状态性与自包含性1.3 Token 的工作流程1.3.1 基本工作流程1.3.2 工作流程图示 二、Token 的常见用途2.1 用户身份验证2.2 授权控制2.3 防止跨站请求伪造&#xff08;CSRF&#xff09;2.4 跨域认证 三、Token…...

FastReport将停止 .NET Framework 上的 WebReport 更新

从2024/ 12 /1 日起&#xff0c;Fastreport将停止发布更新和提供对 FastReport.Web (.NET Framework) 的技术支持。该库一直是使用 Online Designer 的许多项目中报告的核心。这些更改意味着 FastReport.Web (Legacy) 库&#xff08;FastReport.Net包的一部分&#xff09;将不再…...

面试:TCP、UDP如何解决丢包问题

文章目录 一、TCP丢包原因、解决办法1.1 TCP为什么会丢包1.2 TCP传输协议如何解决丢包问题1.3 其他丢包情况&#xff08;拓展&#xff09;1.4 补充1.4.1 TCP端口号1.4.2 多个TCP请求的逻辑1.4.3 处理大量TCP连接请求的方法1.4.4 总结 二、UDP丢包2.1 UDP协议2.1.1 UDP简介2.1.2…...

在Ubuntu下安装RabbitMQ、添加一个新的登录用户并设置密码

在Ubuntu下安装RabbitMQ、添加一个新的登录用户并设置密码 在Ubuntu下安装RabbitMQ可以按照以下步骤进行&#xff1a;步骤 1: 更新系统步骤 2: 安装Erlang步骤 3: 添加RabbitMQ仓库步骤 4: 更新APT索引并安装RabbitMQ步骤 5: 启动RabbitMQ服务步骤 6: 检查RabbitMQ状态步骤 7: …...

HTTPS通信和TCP通信有什么不一样

HTTPS通信和TCP通信的主要区别如下&#xff1a; ‌协议层次‌&#xff1a;HTTPS是应用层协议&#xff0c;建立在HTTP协议之上&#xff0c;并增加了SSL/TLS加密层&#xff1b;而TCP是传输层协议&#xff0c;提供可靠的数据传输服务。‌安全性‌&#xff1a;HTTPS通过SSL/TLS加密…...

Kafka 的一些问题,夺命15连问

kafka-中的组成员 kafka四大核心 生产者API 允许应用程序发布记录流至一个或者多个kafka的主题&#xff08;topics&#xff09;。 消费者API 允许应用程序订阅一个或者多个主题&#xff0c;并处理这些主题接收到的记录流 StreamsAPI 允许应用程序充当流处理器&#xff08;s…...

unity3d————延时函数

1.public void InvokeRepeating(string methodName, float time, float repeatRate); 延迟重复执行函数 InvokeRepeating 参数一&#xff1a;函数名字符串 参数二&#xff1a;第一次执行的延迟时间 参数三&#xff1a;之后每次执行的间隔时间 注意&#xff1a; 1-1.延时函数第…...

计算机学生自我提升方法——善用搜索引擎

计算机学生自我提升方法——善用搜索引擎 在信息爆炸的时代&#xff0c;计算机专业的学生如何有效地自我提升&#xff1f;答案可能就藏在一个简单却强大的工具——搜索引擎中。搜索引擎不仅是获取知识的入口&#xff0c;更是解决问题的利器。下面&#xff0c;我将分享一些善用…...

游戏引擎学习第一天

视频参考: https://www.bilibili.com/video/BV1zGDCYHErA/ 创建一个保存项目的路径 VS的安装略过&#xff0c;个人自行百度 1. vs 创建第一个CMAKE的窗口项目 game.cpp 修改如下的代码 到https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-winmain 去…...

uni-app view循环绑定click和 v-if

<view class"layout-wrap-item" v-for"(item, index) in menuItems" :key"index" click"item.clickHandler" :v-if"showMenu(item)"></view> const xxx (id) > { }; // 定义菜单项数组 const menuItems …...

Redis 高并发分布式锁实战

目录 环境准备 一 . Redis 安装 二&#xff1a;Spring boot 项目准备 三&#xff1a;nginx 安装 四&#xff1a;Jmeter 下载和配置 案例实战 优化一&#xff1a;加 synchronized 锁 优化二&#xff1a;使用 redis 的 setnx 实现分布式锁 优化三&#xff1a;使用 Lua 脚本…...

关于elementui el-radio 赋值问题

今天遇到这样的问题&#xff1a; 点击的时候&#xff0c;同时选中 照抄官网&#xff01; 后来发现了问题&#xff1a; 也就是说如果你的版本太低&#xff0c;就不能用value&#xff0c;而得用label&#xff0c;于是修改 <el-radio-group v-model"searchTime"&g…...

2024-11-6----Android 11(全志713m)----- 关于添加 Selinux 权限

需求 节点: /sys/devices/platform/motor0/motor_ctrl上层 APP 使用 JNI 需要对该节点进行 echo 的操作,操作失败。 添加前的验证工作 adb 进去验证下,如下图所示: 发现权限不够。su 以后再操作是OK的,如下图: 添加前的修改 为防止报权限错误,直接给777,因为该…...

shodan5(泷羽sec)

声明 学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章。 笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 这节课旨在扩大自己在网络安全方面的知识面&#xff0c;了解网络安全领域的见闻&#xff0c;了…...

【Linux】Ansible集中化运维工具(详解)安装、常用模块、playbook脚本

文章目录 一、Ansible安装及远程控制1、关闭防火墙和SELinux2、安装ansible3、配置SSH无密码登录1、在管理机上生成一对密钥2、将公钥下发到远程主机3、保管密钥 4、主机目录 二、常用模块1、setup模块2、copy模块3、file模块4、shell模块5、script模块6、ping模块7、group模块…...

惠州石湾DELL T130服务器黄灯不开机案例

惠州石湾一个朋友反馈一台DELL PowerEdge T130 塔式服务器故障为 通电后无法开机&#xff0c;前面同时亮3个故障灯。闪电灯&#xff0c;电压灯&#xff0c;高温灯 1&#xff1a;这种情况建议大家更换一个同型号的电源进行故障排除。 2&#xff1a;朋友把该服务器硬件最小化测…...

⭐SmartControl: Enhancing ControlNet for Handling Rough Visual Conditions

目录 0 Abstract 1 Motivation 2 Related Work 2.1 Text-to-Image Diffusion Model 2.2 Controllable Text-to-Image Generation 2.3 ControlNet 2.4 Control Scale Exploration 3 Method 3.1 Framework 3.2 Control Scale Predictor 3.3 Unaligned Data Constructi…...

wordpress站外调用指定ID分类下的推荐内容

在WordPress中&#xff0c;如果你想从站外调用指定ID分类下的推荐内容&#xff0c;你可以使用WordPress REST API来实现。以下是一个基本的步骤指南&#xff1a; 1. 启用REST API 确保你的WordPress站点已经启用了REST API。大多数现代WordPress版本默认启用此功能。 2. 获取…...

Ente: 我们的 Monorepo 经验

原文&#xff1a;manav - 2024.10.29 九个月前&#xff0c;我们切换到了 monorepo。在此&#xff0c;我将介绍我们迄今为止的切换经验。 这并不是一份规范性的建议&#xff0c;而是一个经验的分享&#xff0c;目的是希望能够帮助其他团队做出明智的决策。 与大多数岔路不同&…...

避开学术‘红线’:手把手教你用AI+ArcMap合法合规处理论文中的中国地图

科研地图合规处理全流程&#xff1a;从标准地图到安全应用的实战指南 在学术研究中&#xff0c;地图作为重要的空间表达工具&#xff0c;其规范使用直接关系到研究成果的合法性和可信度。近年来&#xff0c;随着科研管理日趋严格&#xff0c;地图使用不当导致的论文撤稿、项目终…...

React Native Actions Sheet源码解析:深入理解其架构与实现原理

React Native Actions Sheet源码解析&#xff1a;深入理解其架构与实现原理 【免费下载链接】react-native-actions-sheet A Cross Platform(Android, iOS & Web) ActionSheet with a flexible api, native performance for react native. Create anything you want inside…...

为AI智能体构建自动化RSS信息管道:agent-rss工具详解与实践

1. 项目概述&#xff1a;为AI智能体打造的RSS信息管道 如果你正在构建或使用AI智能体&#xff08;比如Claude Code、OpenClaw这类工具&#xff09;&#xff0c;并且希望它们能像人类一样&#xff0c;定时、定向地获取互联网上的最新信息&#xff0c;那么你很可能需要一个专门为…...

Yaskawa JACP-317800输入输出模块

安川JACP-317800是一款高性能逻辑输入输出模块&#xff0c;隶属于安川CP-317系列PLC系统&#xff0c;专为工业自动化领域的数字信号采集与控制而设计。产品特点&#xff1a;产品类型为逻辑输入输出模块&#xff0c;作为PLC与现场设备之间的信号接口模块重量仅0.3公斤&#xff0…...

清华系团队造出能“边听边说、边看边想“的AI耳朵MiniCPM-o 4.5

这项由清华大学自然语言处理实验室&#xff08;THUNLP&#xff09;主导、OpenBMB开源社区联合推出的研究成果&#xff0c;于2026年4月30日以预印本形式发布在arXiv平台&#xff0c;编号为arXiv:2604.27393。感兴趣的读者可通过这个编号检索到完整论文。**一场关于"耳朵和嘴…...

从0到1掌握Ansible:让自动化运维不再是梦想

最近在公司推进自动化运维的时候&#xff0c;发现很多同事对Ansible还是一知半解&#xff0c;要么就是简单用用&#xff0c;要么就是直接放弃。其实Ansible真的没那么复杂&#xff0c;我用了这么多年&#xff0c;今天就把我的实战经验分享给大家。 说实话&#xff0c;刚开始接…...

中国半导体产业崛起:资本驱动下的存储器攻坚与全产业链布局

1. 行业格局的十字路口&#xff1a;当西方整合遇上东方崛起最近几年&#xff0c;半导体行业的头条新闻几乎被一系列重磅并购案所占据&#xff1a;恩智浦收购飞思卡尔、安华高并购博通、英特尔鲸吞阿尔特拉。这些动辄数百亿美元的巨无霸交易&#xff0c;背后传递出一个清晰的信号…...

Nihonga风格AI生成稀缺资源包泄露:含17世纪狩野派笔触扫描集、200+古籍《本朝画史》描述性Prompt语料库、及唯一通过日本文化厅AI伦理审查的商用授权协议范本

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Nihonga风格AI生成资源包的伦理边界与文化权重 文化符号的不可压缩性 Nihonga&#xff08;日本画&#xff09;并非仅由矿物颜料、金箔或桑皮纸构成的技术集合&#xff0c;其内嵌着神道自然观、物哀美学…...

避坑指南:海康威视工业相机SDK二次开发常见问题排查(从环境配置到图像采集)

海康威视工业相机SDK开发实战&#xff1a;从环境搭建到图像处理的深度避坑指南 工业视觉领域的开发者们&#xff0c;是否曾在深夜调试海康威视相机SDK时&#xff0c;被突如其来的"DLL缺失"错误打断思路&#xff1f;或是明明按照文档配置了项目属性&#xff0c;却始终…...

长期使用Taotoken Token Plan套餐带来的成本控制感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用Taotoken Token Plan套餐带来的成本控制感受 1. 从按需付费到预算规划 对于个人开发者或小型团队而言&#xff0c;大模型…...