JS排序算法

JavaScript学习总结(15)——十大经典排序算法的JS版 前言 这世界上总存在着那么一些看似相似但有完全不同的东西,比如雷锋和雷峰塔,小平和小平头,玛丽和马里奥,Java和javascript….当年javascript为了抱Java大腿恬不知耻的让自己变成了Java的干儿子,哦,不是应该是跪舔,毕竟都跟了Java的姓了。可如今,javascript来了个咸鱼翻身,几乎要统治web领域,Nodejs,React Native的出现使得javascr 阅读详情

这里简单的总结一下排序算法中的4种

1、冒泡排序
2、选择排序
3、插入排序
4、快速排序

1 冒泡排序
冒泡排序就是循环遍历,两两进行比较排大小

function BubleSort(s){
	for(let i = 0; i < s.length; i++){
		for(let j = i; j < s.length; j++){
			s[j] > s[j-1] && ( [s[j], s[j-1]]=[s[j-1], s[j]] );
		}
	}
}	

2 选择排序
选择排序就是对当前遍历点之后的数据进行对比,比当前遍历点小的数据就进行数值交换

function SelectSort(s){
	for(let i = 0; i < s.length; i++){
		for(let j = i; j < s.length; j++){
			s[i] > s[j] && ( [s[i], s[j]] = [s[j], s[i]]);
		}
	}
}

3 插入排序
插入排序就是假设当前遍历点之前的数组已经是有序的,将当前遍历点插入到该有序数组的合适位置

function InsertSort(s){
	for(let i = 1; i < s.length; i++){
		for(let j = i; j > 0; j--){
			s[j] < s[j-1] && ( [s[j], s[j-1]] = [s[j-1], s[j]]);
		}
	}
}

4 快速排序
快速排序就是采用分治法,将数组分为比对比节点大的数组和比对比节点小的数组,再进行递归处理得到最后的排序数组

function QuickSort(s){
	if(s.length <= 1) return s;
	let l = 0, r = s.length, curr = s.splice(0,1);
	s.forEach(item=>{
		item > curr ? r.push(item) : l.push(item);
	})
	return QuickSort(l).concat(curr, QuickSort(r));
}

这4种排序中,冒泡和插入排序是稳定的,而选择和快速排序是不稳定的。

快速排序的详细讲解参考文章:https://blog.youkuaiyun.com/morewindows/article/details/6684558

用Python搞定超效率SBM模型:从数据清洗到结果可视化全流程指南 本文详细介绍了如何使用Python实现超效率SBM模型,从数据清洗到结果可视化的全流程指南。超效率SBM模型作为传统DEA的进化版本,能有效处理非期望产出(如环境污染)并对高效单元进行精细排序。通过实战案例和代码示例,帮助读者掌握这一先进模型的Python实现技巧,提升效率评估的准确性和可视化效果。 阅读详情

相关推荐

【纯血鸿蒙】安装hdc工具

参考资料:

oh.K 5549

js的五种排序方法

1.冒泡排序 说明: 比较所有相邻元素,如果第一个比第二个大,则交换它们 一轮下来保证可以找到一个数是最大的 执行n-1轮,就可以完成排序 图示: ** 代码: //定义一个原生的bubbleSort方法 Array.prototype.bubbleSort = function () { for(let i = 0; i < this.length - 1; i += 1) { //通过 this.length 次把第一位放到最后,完成排序 //-i是因为

weixin_46224014的博客 4万+

MTK 人工智能生态系统 <一> 简介

Neuropilot

New_Tank的博客 3495

数组排序之冒泡排序

vararr=[5,99,2,9,1,5,67,7,10,23] //定义一个杂乱的数组 for(vari=0;i<arr.length-1;i++){ //大循环,用于遍历数组每个元素 for(varj=0;j<arr.length-i-1;j++){ //小循环,用于将数组中的某个元素与其它所有元素...

bachou1292的博客 291

`全网最细!! 入门必看Git教程链接:https://gitee.com/all-about-git`

全网 Git 入门教程 gitee.com。如果显示The requested URL returned error: 403错误,那就表示没有和window本地建立token令牌

qq_37855368的博客 3748

Fastwhisper + Pyannote 实现 ASR + 说话者识别

最近在研究ASR相关的业务,也是调研了不少模型,踩了不少坑,ASR这块,目前中文普通话效果最好的应该是阿里的modelscope上的中文模型了,英文的话,还是非whisper莫属了,而且whisper很变态,粤语效果也还不错,因此,如果实际业务中需要涉及到不同的语言,还是更推荐whisper多一点faster-whisper是使用CTranslate2对OpenAI的Whisper模型的重新实现,CTranslate2是一个用于Transformer模型的快速推理引擎。

qq_44193969的博客 1万+

JS 常见的排序算法

工作中算法不常用,但是排序经常用。因此在这里整理了几种JS中常见的排序算法。 冒泡排序 1、算法思想:判断两个相邻元素,大于则交换位置 2、算法步骤 从数组中第一个数开始,依次与下一个数比较并次交换比自己小的数,直到最后一个数。如果发生交换,则继续下面的步骤,如果未发生交换,则数组有序,排序结束,此时时间复杂度为O(n); 每一轮”冒泡”结束后,最大的数将出现在乱序数列的最后一位。重复步骤(1) 3、算法平均复杂度:n(n^2) function sortArr(arr) { //

SmileDongFF的博客 4344

uniapp(vue3)- 详解安装/使用pinia报错reportJSException >>>> exception function:createInstanceContext, excepti

uniapp vue3 pinia报错reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack -> at useStore,H5网页,微信小程序,安卓App,苹果App,nvue,uniapp安装使用pinia出现报错at useStore,uniapp+vue3+ts 使用pinia报

🏆 前端领域优质创作者 4047

js 常用排序算法

选择排序是一种简单易懂的排序算法。它的基本思想是遍历整个列表,每次找出最小的元素,并且将它移到列表的最左边,重复这个过程直到整个列表都有序排列。在平均情况下,选择排序的时间复杂度为 O(n^2),在最坏情况下与最好情况下都为 O(n^2)。选择排序在数据规模较小时非常适用,在数据规模较大时不够高效。插入排序是一种简单而直观的排序算法,它可以快速地对部分有序的数组进行排序。插入排序通过比较相邻的元素并在需要时将其交换,来实现从小到大的排列。

weixin_45730243的博客 3548

YOLOv11 改进 - 注意力机制 | HaloNet 局部自注意力 (Local Self-Attention) 以分块交互策略实现高效全局上下文建模

本文介绍了局部自注意力机制(HaloAttention)在YOLOv11中的结合应用。局部自注意力通过关注输入数据局部区域来捕捉特征关系,能降低计算复杂度、增强局部特征捕捉,且可与CNN结合。其计算时先定义局部窗口,再计算注意力权重并加权求和。我们将HaloAttention集成到YOLOv11的检测头中,并进行相关注册和配置。实验表明,改进后的模型在目标检测和实例分割等任务中表现更佳,证明了自注意力模型在传统卷积主导领域的有效性。

魔改工程师的博客 1142

【Flink】FlinkSQL如何触发执行计算

Table (通过 StatementSet.addInsert() 输出给某个 Sink)和 INSERT 语句 (通过调用 StatementSet.addInsertSql())会先被缓存到 StatementSet 中,StatementSet.execute() 方法被调用时,所有的 sink 会被优化成一张有向无环图。该方法是用来将一个表的内容插入到目标表中,一旦该方法被调用, TABLE API 程序立即被翻译。该方法是用来执行一个 SQL 语句,一旦该方法被调用, SQL 语句立即被翻译。

一杯咖啡半杯糖的博客 1007

常见的排序算法(JavaScript版)

使用javascript实现常见的排序算法

2301_76380626的博客 1404

打开.nc降水气象数据制作年降水量地图

图层的单位为度,在反距离插值中也是以度为单位,比较麻烦,还是想用以m为单位的投影,这里是个bug,后续调整一下。该彩色部分是以2021年1月、2月、3月的降水数据分别作为RGB得到。因为该栅格的分辨率还是太大了,一个栅格就能覆盖一个县,若想要进行降尺度,可以做插值处理。下载的数据集为2021-2022年,因此有12+12=24个月,24个波段。想要得到廊坊市周围的数据,需要裁剪范围,在降水数据图层上导出数据。打开数据管理工具-投影和变换-定义投影。在降水数据图层上右击属性,添加投影。得到了降尺度的插值图。

所有专家都曾始于新手 4520

探索JavaScript中的十大经典排序算法

还在为JavaScript中的数组排序问题而烦恼吗?面对海量数据时,如何选择合适的排序算法成为每个开发者必须掌握的技能。本文将带你深入探索JavaScript中的十大经典排序算法,从基础概念到实战应用,为你构建完整的排序算法知识体系。 ## ???? 排序算法的重要性与分类 排序算法是计算机科学中最基础也是最重要的算法之一。在JavaScript开发中,无论是前端数据处理还是后端业务逻辑,排序都是...

gitblog_00057的博客 336

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

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

js 数组排序算法 【选择排序】

js 数组排序算法 【选择排序】

姗姗的博客 523

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[js点滴]JavaScript排序算法汇总

排序算法是将一系列的值按照顺序进行排列的方法。冒泡排序简介 冒泡排序(Bubble Sort)是最易懂的排序算法,但是效率较低,生产环境中很少使用。 它的基本思想是: 依次比较相邻的两个数,如果不符合排序规则,则调换两个数的位置。这样一遍比较下来,能够保证最大(或最小)的数排在最后一位。 再对最后一位以外的数组,重复前面的过程,直至全部排序完成。 由于每进行一次这个过程,

图解AI 5135

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JavaScript实现一个排序算法的演示动画

在学习排序算法的时候,单纯的文字或者代码无法直观地表示出算法的具体排序过程,而自己手动画出示意图也比较麻烦,所以作者使用 JavaScript 实现了一个简单的排序算法的演示动画页面。

千里之行,始于足下 778

十大经典排序算法js实现

十大经典排序算法JS实现方式

zeroJustGG的博客 489

js十大排序算法

js十大排序算法

weixin_40277684的博客 155

JavaScript排序算法专栏(JS十大排序算法详解)

一、冒泡排序 1、Explanation And Steps(解释的步骤) 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位,所以最熟悉。冒泡排序还有一种优化算

smallteddy.blog.youkuaiyun.com 2969

JavaScript排序算法详解

主流排序算法概览名词解释:n: 数据规模 k:“桶”的个数 In-place: 占用常数内存,不占用额外内存 Out-place: 占用额外内存 稳定性:排序后2个相等键值的顺序和排序之前它们的顺序相同排序算法实在是博大精深,还有hin多hin多我没有总结到或者我自己还没弄明白的算法,仅仅是总结这十种排序算法都把我写哭了。。。因此,以后如果我掌握了更多的排序姿势,我一定还会回来的!

2301_78835635的博客 334

JavaScript排序算法总结

JavaScript实现排序算法 一、大O表示法 大O表示法: 在计算机中采用粗略的度量来描述计算机算法的效率,这种方法被称为“大O”表示法 在数据项个数发生改变时,算法的效率也会跟着改变。所以说算法A比算法B快两倍,这样的比较是没有意义的。 因此我们通常使用算法的速度随着数据量的变化会如何变化的方式来表示算法的效率,大O表示法就是方式之一。 常见的大O表示形式 符号 名称 O(1) 常数 O(log(n)) 对数 O(n) 线性 O(nlog(n))

Ben_Simons 316

原生JS排序算法的优化

本博文介绍了一个基础算法:基于JS实现多类型数据排序

代码找天地 813

用javascript实现各种排序算法

用javascript实现各种排序算法 1.冒泡排序 思路:遍历序列中的所有元素进行两两比较 ① 需要两次循环 ② 外循环表示要遍历的轮数 ③ 内循环表示每一轮要两两比较的次数 <script> var arr = [75,1,2,88,0,-55]; function bubbleSort(arr){ for(var i = 0;i<arr.le...

qq_41564928的博客 237

JS常见的排序算法

这里是修真院前端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析前端知识/技能,本篇分享的是: 【JS常见的排序算法 】 大家好,我是IT修真院北京分院第20期的学员王野,一枚正直纯洁善良的程序员 今天给大家分享一下,修真院官网JS任务4,深度思考中的知识点——JS常见的排序算法 一、背景介绍 ...

IT修真院:初学者转行到互联网的聚集地 553

javascript排序算法总结

javascript排序算法总结 这里是对数据结构中的几种算法做一个总结 简单的排序算法有:①冒泡排序 ②选择排序 ③插入排序 高级的排序算法有: ①希尔排序 ②快速排序 一、冒泡排序 如图所示为冒泡排序的步骤 这里冒泡排序的查找的时间复杂度是O(n ^ 2),交换的时间复杂度是O(n^2)。 二、选择排序 如图所示为选择排序的一般步骤 其思路就是找到剩下的元素中最小的一个,然后进行交换,其时间复杂度是O(n ^ 2),比冒泡排序效率高一些 三、插入排序 如图所示下面是插入排序的一般步骤 其基本思路

weixin_47450807的博客 345
上一篇: 行内元素设置padding和margin
下一篇: git回退单文件
izwell
博客等级 码龄14年 16粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值