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

深入理解JS中的排序

在JavaScript开发中,排序是一项基础而重要的操作。本文将探讨JavaScript中几种常见的排序算法,包括它们的原理、实现方式以及适用场景。

1、冒泡排序

1.1、原理

通过比较相邻两个数的大小,交换位置排序:如果后一个数比前一个数小,则交换两个数的位置,重复这个过程,直到所有的数据按照升序排列。

1.2、代码实现

采用两层嵌套循环的方案,外层循环控制比较的轮数,内层循环用于比较相邻数据和交换位置

let Arr = [2, 5, 3, 7, 9, 1, 0, 6, 23, 12]/*** 冒泡排序:* 时间复杂度O(n^2)* 原理:比较相邻的元素,如果第一个比第二个大,就交换它们两个* 注意:冒泡排序是原地排序算法,会改变原数组中元素顺序* @param {*} arr * @returns */
const bubbleSort = (arr) => {let len = arr.length;if (len <= 1) return arr;for (let i = 0; i < len; i++) {// 提前退出冒泡循环的标志位let swappend = false;for (let j = 0; j < len - i - 1; j++) {if (arr[j] > arr[j + 1]) {const temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp

相关文章:

深入理解JS中的排序

在JavaScript开发中,排序是一项基础而重要的操作。本文将探讨JavaScript中几种常见的排序算法,包括它们的原理、实现方式以及适用场景。 1、冒泡排序 1.1、原理 通过比较相邻两个数的大小,交换位置排序:如果后一个数比前一个数小,则交换两个数的位置,重复这个过程,直…...

Kafka之存储设计

文章目录 1. 分区和副本的存储结构1. 分区和副本的分布2. 存储目录结构3. 文件描述 2. 相关配置3. 数据文件类型4. 数据定位原理LogSegment 类UnifiedLog 类 5. 副本数据同步HW水位线LEO末端偏移量HW更新原理 6. 数据清除 1. 分区和副本的存储结构 在一个多 broker 的 Kafka 集…...

Python面试整理-Python中的函数定义和调用

在Python中,函数是一种封装代码的方式,使得代码模块化和复用性更强。定义和调用函数是Python编程中的基本技能。以下是关于如何在Python中定义和调用函数的详细介绍: 函数定义 函数在Python中使用def关键字进行定义。函数体开始前,通常有一个可选的文档字符串(docstring)…...

HTTP协议、Wireshark抓包工具、json解析、天气爬虫

HTTP超文本传输协议 HTTP&#xff08;Hyper Text Transfer Protocol&#xff09;&#xff1a; 全称超文本传输协议&#xff0c;是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议。 HTTP 协议的重要特点&#xff1a; 一发一收…...

electron项目中实现视频下载保存到本地

第一种方式&#xff1a;用户自定义选择下载地址位置 渲染进程 // 渲染进程// 引入 import { ipcRenderer } from "electron";// 列表行数据下载视频操作&#xff0c;diffVideoUrl 是视频请求地址 handleDownloadClick(row) {if (!row.diffVideoUrl) {this.$message…...

基于chrome插件的企业应用

一、chrome插件技术介绍 1、chrome插件组件介绍 名称 职责 访问权限 DOM访问情况 popup 弹窗页面。即打开形式是通过点击在浏览器右上方的icon&#xff0c;一个弹窗的形式。 注: 展示维度 browser_action:所有页面 page_action:指定页面 可访问绝大部分api 不可以 bac…...

unittest框架和pytest框架区别及示例

unittest框架和pytest框架区别及示例 类型unittest框架pytest框架unittest框架示例pytest框架示例安装python内置的一个单元测试框架,标准库&#xff0c;不需要安装第三方单元测试库&#xff0c;需要安装使用时直接引用 import unittest安装命令&#xff1a;pip3 install pyte…...

IDEA性能优化方法解决卡顿

文章目录 前言一、可以采取以下措施&#xff1a;二、VM Options的参数解释1. 内存设置2. 性能调优3. GC&#xff08;垃圾回收&#xff09;调优4. 调试和诊断5. 其它设置6.设置 VM Options 的步骤&#xff1a; 总结 前言 我们在使用 IntelliJ IDEA的时候有时候会觉得卡顿&#x…...

Mysql集合转多行

mysql 集合转多行 SELECT substring_index(substring_index(t1.group_ids, ,, n), ,, -1) AS group_id FROM (select 908,909 as group_ids ) t1, (SELECT rownum : rownum 1 AS n FROM ( SELECT rownum : 0 ) r, orders ) t2 WHERE n < ( LENGTH( t1.group_ids ) - LENGT…...

MFC:只允许产生一个应用程序实例的具体实现

在MFC&#xff08;Microsoft Foundation Class&#xff09;应用程序中&#xff0c;如果你想限制只允许产生一个应用程序实例&#xff0c;通常会使用互斥体&#xff08;Mutex&#xff09;来实现。这可以确保如果用户尝试启动第二个实例时&#xff0c;它会被阻止或将焦点返回到已…...

深入理解TCP/IP协议中的三次握手

&#x1f44d; 个人网站&#xff1a;【洛秋资源小站】 深入理解TCP/IP协议中的三次握手 在计算机网络中&#xff0c;TCP/IP协议是通信的基石。理解TCP/IP协议中的三次握手是掌握网络通信的关键步骤之一。本文将详细解释TCP/IP协议中的三次握手过程&#xff0c;探讨其工作原理&…...

【React】事件绑定、React组件、useState、基础样式

React 教程 目录 事件绑定 1.1. 基础实现 1.2. 使用事件参数 1.3. 传递自定义参数 1.4. 同时传递事件对象和自定义参数 React 组件 2.1. 组件是什么 2.2. 组件基础使用 useState&#xff1a;状态管理 3.1. 基础使用 3.2. 状态的修改规则 3.3. 修改对象状态 基础样式 4.1. 行…...

x264、x265、libaom 编码对比实验

介绍 x264 是一个开源的高性能 H.264/MPEG-4 AVC 编码器,它以其优秀的压缩比和广泛的适用性而闻名。x265 是一种用于将视频流编码成 H.265/MPEG-H HEVC 压缩格式的免费软件库和应用程序,以其下一代压缩能力和卓越的质量而闻名 。作为 x264 的继任者,x265 支持 HEVC 的 Main、…...

c++网络编程实战——开发基于ftp协议的文件传输模块(二) 配置ftp服务与手动执行ftp命令

配置FTP服务 一.前言 博主的环境是阿里云服务器&#xff0c;操作系统版本为 ubuntu20.04,一下所有操作都基于以上环境下进行的操作&#xff0c;同时为了简化操作我将开放同一个云服务器的不同端口&#xff0c;让它同时充当服务端和客户端&#xff0c;大家如果想测试效果更好且…...

Sphinx 安装相关指令解释

安装指令 pip3 install sphinx-autobuildpip3 install sphinx_rtd_themepip3 install sphinx_markdown_tablepip3 install sphinx_markdown_tables pip3 install sphinx-autobuild 功能&#xff1a;安装 sphinx-autobuild 包。作用&#xff1a;sphinx-autobuild 是一个工具&am…...

npm下载包-更改默认缓存目录

npm&#xff08;Node Package Manager&#xff09;的缓存目录是npm用于存储已下载包的本地位置&#xff0c;以便在后续安装相同包时能够快速复用&#xff0c;从而节省时间和带宽。npm缓存目录的具体位置会根据操作系统的不同而有所差异。 Windows系统 在Windows系统中&#x…...

PWM再理解(1)

前言 昨天过于劳累&#xff0c;十点睡觉&#xff0c;本来想梳理一下PWM&#xff0c;今天补上。 PWM内涵 PWM全称&#xff1a;Pulse Width Modulation&#xff0c;也就是脉宽调制的意思&#xff0c;字面意思理解就是对脉冲的宽度进行改变。准确就是通过数字输出对模拟电路进行…...

CSPVD 智慧工地安全帽安全背心检测开发包

CSPVD SDK适用于为各种智慧工地应用增加安全防护穿戴合规的检测能力&#xff0c;能够有效检测未戴安全帽和未穿 安全背心的人员&#xff0c;提供Web API和原生API。官方下载&#xff1a;CSPVD工地安全防护检测 1、目录组织 CSPVD开发包的目录组织说明如下&#xff1a; xlpr_…...

给常用Docker命令起别名,提高效率

在日常的开发和运维工作中&#xff0c;Docker是一款非常常用的工具。为了提高工作效率&#xff0c;我们可以为一些常用的Docker命令设置别名&#xff0c;这样可以更快速地执行这些命令。以下是如何给常用Docker命令起别名的详细步骤。 修改/root/.bashrc文件 首先&#xff0c…...

基于深度学习的草莓成熟度实时检测系统(UI界面+YOLOv8/v7/v6/v5模型+完整代码与数据集)

1. 引言 在农业领域&#xff0c;草莓的成熟度检测是保证果实品质的重要环节。传统的方法依赖于人工经验&#xff0c;不仅耗时费力&#xff0c;还容易出错。本文介绍如何使用YOLO&#xff08;You Only Look Once&#xff09;系列模型&#xff08;YOLOv8/v7/v6/v5&#xff09;构…...

国产替代之SFT1452-TL-W与VBE1251K参数对比报告

N沟道功率MOSFET参数对比分析报告一、产品概述SFT1452-TL-W&#xff1a;安森美&#xff08;onsemi&#xff09;N沟道硅功率MOSFET&#xff0c;耐压250V&#xff0c;低导通电阻&#xff0c;低输入电容&#xff0c;采用10V驱动&#xff0c;符合无卤素标准&#xff0c;具有ESD二极…...

VMDE终极指南:如何快速检测虚拟机环境的完整教程

VMDE终极指南&#xff1a;如何快速检测虚拟机环境的完整教程 【免费下载链接】VMDE Source from VMDE paper, adapted to 2015 项目地址: https://gitcode.com/gh_mirrors/vm/VMDE VMDE&#xff08;Virtual Machine Detection Enhanced&#xff09;是一款强大的开源虚拟…...

VS2019集成libigl实战:从零到一的图形学开发环境搭建

1. 环境准备&#xff1a;从零搭建开发基础 第一次接触libigl和VS2019的组合时&#xff0c;我完全能理解那种手足无措的感觉。记得当时为了赶图形学课程作业&#xff0c;我和室友熬了三个通宵才把环境跑通。现在回头看&#xff0c;其实只要掌握几个关键步骤&#xff0c;整个过程…...

Go语言轻量级Web框架Tapestry:高性能路由与中间件设计实战

1. 项目概述与核心价值最近在开源社区里&#xff0c;一个名为Tapestry的项目引起了我的注意。它来自开发者 NatsuFox&#xff0c;定位是一个“轻量级、高性能的 Web 框架”。说实话&#xff0c;现在各种语言的 Web 框架多如牛毛&#xff0c;从 Python 的 Flask、Django&#xf…...

《蔚蓝档案》鼠标指针主题:从设计到安装的完整桌面美化指南

1. 项目概述&#xff1a;为你的桌面注入《蔚蓝档案》的学园气息如果你和我一样&#xff0c;既是《蔚蓝档案》的玩家&#xff0c;又是个喜欢折腾桌面美化的爱好者&#xff0c;那么今天分享的这个项目绝对会让你眼前一亮。它不是什么复杂的软件&#xff0c;而是一套精心制作的Win…...

5分钟掌握视频号批量下载:res-downloader高效操作指南

5分钟掌握视频号批量下载&#xff1a;res-downloader高效操作指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在数字内容…...

Python 爬虫数据处理:重复页面数据智能合并去重

前言 在规模化 Python 爬虫采集项目中&#xff0c;重复页面数据是高频出现的核心问题&#xff0c;源于站点分页逻辑错乱、镜像页面分发、动态接口返回冗余数据、多入口同源页面采集等多重因素。重复数据若不做处理&#xff0c;不仅会造成数据库存储冗余、占用服务器资源&#…...

电源完整性设计:电容模型、去耦策略与测量验证实战解析

1. 电容与去耦&#xff1a;从概念到实战的深度解析上周我们聊了聊去耦电容在电源完整性设计中的一些基本概念和时机选择&#xff0c;算是开了个头。这周咱们继续深入&#xff0c;把这块硬骨头啃得更透一些。很多工程师&#xff0c;尤其是刚入行的朋友&#xff0c;常常觉得电容选…...

016、气压计原理与高度测量

飞控算法从入门到精通 016 气压计原理与高度测量 一、一次炸机带来的教训 去年夏天,我在一个四轴飞行器上调试定高悬停。气压计用的是MS5611,数据手册翻烂了,滤波算法也上了,地面站里高度曲线看着挺平滑。结果一上天,飞机像喝醉了酒——先是莫名其妙往下掉半米,然后猛…...

DOM NodeList 深入解析

DOM NodeList 深入解析 概述 DOM NodeList 是 Web 开发中常用的一种数据结构,它代表了文档中一系列元素的集合。在本文中,我们将对 DOM NodeList 进行深入解析,包括其定义、特点、使用方法以及在实际开发中的应用。 定义 DOM NodeList 是一个类似数组的对象,它包含了文…...