JavaScript实现计数排序

JavaScript实现CountingSort计数排序算法(附完整源码) JavaScript实现CountingSort计数排序算法(附完整源码)omparator.js完整源代码Sort.js完整源代码CountingSort.js完整源代码 omparator.js完整源代码 export default class Comparator { constructor(compareFunction) { this.compare = compareFunction || Comparator.defaultCompareFunction; } stati 阅读详情

计数排序:

  1. 适合非负整数排序
  2. 以原数组的元素的数值为辅助数组的索引
  3. 以原数组元素的出现数量为辅助数组对应的值
  4. 辅助数组构建完成后,根据索引以及对应的值(数量)给原数组重新赋值

代码实现:

        let arr = [9,8,7,6,5,4,3,2,1,0];
        
        function countingSort(arr){
            if(arr.length < 2) return arr;
            
            let max = 0;
            for(let i = 0; i < arr.length; i ++){
                if(arr[i] > max) max = arr[i];
            }
            
            console.log(max);
            let counts = new Array(max + 1);
            arr.forEach(item => {
                if(!counts[item]) counts[item] = 0;
                counts[item] ++;
             });
            
            let index = 0;
            for(let j = 0; j < counts.length; j ++){
                if(counts[j]){
                    for(let k = 0; k < counts[j]; k ++){
                        arr[index++] = j;
                    }
                }
            }
            // return arr;
        }
        
        countingSort(arr);
        console.log(arr);

JavaScript实现计数排序算法 以上是使用JavaScript实现的计数排序算法。通过对待排序数组的遍历和计数操作,我们可以快速得到排序后的结果。计数排序适用于元素取值范围较小的情况,可以在一定程度上提高排序的效率。计数排序是一种简单的线性时间复杂度(O(n+k))的排序算法,其中n是待排序元素的数量,k是元素的取值范围。它适用于对于一定范围内的整数排序,并且不需要比较操作。注意:计数排序是一种稳定的排序算法,即相同值的元素在排序后的顺序保持不变。JavaScript实现计数排序算法。 阅读详情

相关推荐

Counting Sort计数排序算法的实现(JavaScript)

计数排序算法的核心思想在于通过统计元素的出现次数,然后根据统计信息将元素放置到正确的位置上,从而实现排序。这种方法适用于待排序元素范围较小且离散的情况,但如果待排序元素范围非常大或者元素之间的差距较大,则计数排序的效率会显著下降。以待排序数组 [5, 3, 9, 1, 4, 5, 8, 2, 7, 6] 为例,经过计数排序后的结果是 [1, 2, 3, 4, 5, 5, 6, 7, 8, 9]。计数排序的时间复杂度为O(n+k),其中n是待排序元素的个数,k是待排序元素的范围。最后,返回排序的结果。

CodeWhizZ的博客 113

js数组按某一项统计(排序、取最多最少)

比如如下数据data,inputer_code一一对应inputer,找出inputer最多的那个<script> var data=[ {id: "148",input_time: "2016-03-01 15:18:26",inputer: "张三",inputer_code: "003"}, {id: "151",input_time: "2016-03

大漠雁 1451

JavaScript:实现counting sort计数排序算法(附完整源码)

JavaScript:实现counting sort计数排序算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 279

js将数组中的对象按照某个属性进行分组排序统计

【代码】js将数组中的对象按照某个属性进行分组排序统计。

一个努力搬砖的前端开发 1172

JavaScript中统计特定元素出现次数的方法

字符串是字符的集合,可以包含字母、数字、符号等。字符串的特性包括不可变性,即一旦创建,其内容不能被改变。

weixin_32324637的博客 1154

Javascript排序算法之计数排序的实例

计数排序是一种高效的线性排序,它通过计算一个集合中元素楚翔的次数来确定集合如何排列,计数排序不需要进行数据的比较,所有他的运行效率前面介绍的都高

JavaScript经典排序算法——计数排序

计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。就是遍历数组记录数组下的元素出现过多次,然后把这个元素找个位置先安置下来,简单点说就是以原数组每个元素的值作为新数组的下标,而对应小标的新数组元素的值作为出现的次数,相当于是通过下标进行排序。动图演示:     JavaScript代码实现:functio...

杜小白的博客 1718

Unity动态创建Avatar骨骼映射

Unity Avatar骨骼映射动态创建,适配Unity通用动画,无需经过第三方建模软件,可运行时创建

Nbin_Newby的博客 1万+

JS实现计数排序

计数排序(Counting Sort)作为一种非常特殊且有效的排序算法,具有线性时间复杂度的特点,适用于一定范围内的整数排序。本文将深入研究计数排序的原理、实现方式等。

CreatorRay的博客 293

用数据分析优化彩票决策:放弃预测,专注理性投入

彩票本质上是负和博弈的概率系统,其核心并非号码预测,而是对玩法规则、返奖率(RTP)、投入策略与心理约束的量化决策。基于组合数学与二项分布的分析方法,可精确计算各奖项概率、评估不同玩法的实际回报效率,并构建个人资金-风险-目标模型。数据的价值不在于打破随机性,而在于识别非随机环节——如奖池跃升期的RTP波动、固定奖的保底收益、冷热号背后的分奖博弈结构。这种以决策优化为导向的数据实践,适用于将彩票视为受控实验的理性参与者,而非追求玄学中奖的投机者。

frank1998819 641

计数排序 php,JS实现的计数排序与基数排序算法示例_javascript技巧

这篇文章主要介绍了JS实现的计数排序与基数排序算法,结合实例形式简单分析了计数排序与基数排序的原理与JS实现技巧,对JS感兴趣的朋友可以一起来看看哦!本文实例讲述了JS实现的计数排序与基数排序算法。分享给大家供大家参考,具体如下:计数排序计数排序就是简单的桶排序,一个桶代表数组中一个数出现的个数,所以需要一个和数组数字范围一样大的辅助数组,一般用在范围小于100的排序,时间复杂度为O(n),空间复...

weixin_29053577的博客 121

【知识点总结】电路原理 第一讲

大家好,从今天起,我将开始更新自上大学以来所学到的各种知识,之所以选择更新它们是因为最近我一直在收拾整理自己自上大学以来所收获到的各种知识,看着那厚厚一沓的书本心里不由得犯愁。如果我想找到特定的知识,那岂不是得翻到猴年马月。俗话说得好,下雨天打鞋子,闲着也是闲着,为此我设置一个专栏,将知识点一一分类总结,目的在于更好的整理所学的知识。本人学艺不精,有一些知识点地方可能存在瑕疵,希望各位大佬可以多多指教。以下是本篇文章正文内容虚断:一般通用性运算放大器的正反向输入端之间的电阻非常非常的大。

weixin_51130221的博客 4万+

计数排序JavaScript实现,极客时间学习笔记

// 计数排序JavaScript实现,极客时间学习笔记 // 需要排序的数组a let a = [2, 5, 3, 0, 2, 3, 0, 3]; /* c的key代表着需要排序的数组中从小到 大的数值,value代表需要排序的数组中 该数值出现了几次 */ let c = []; // 排序后的结果R let R = []; /* 第一步求出需要排序的数组中的最大值, 以便给出c中需要多少ke...

weixin_39789925的博客 200

别再手动调波形了!用STM32G474的HRTIM+DAC生成精密锯齿波,附完整CubeMX配置

本文详细介绍了如何利用STM32G474的高分辨率定时器(HRTIM)和数模转换器(DAC)协同工作,实现高精度锯齿波生成。通过CubeMX配置指南、关键寄存器计算和实践技巧,帮助开发者快速掌握全硬件实现的波形生成方案,显著提升嵌入式系统的波形控制精度和响应速度。

weixin_28716769的博客 246

DeepSeek在实时计算与流处理系统中的突破性实践

对于技术决策者而言,现在正是将DeepSeek实时计算技术纳入企业架构蓝图的关键时机,那些能够率先构建实时智能能力的企业,将在数据驱动的商业竞争中赢得决定性优势。DeepSeek通过创新的流处理架构,成功将复杂事件处理(CEP)的延迟降低到亚秒级,同时保证了计算结果的精确性。DeepSeek研发的神经架构搜索(NAS)与知识蒸馏联合优化框架,可在保持模型精度的前提下,将参数量压缩至原始模型的1/100,实现边缘设备的实时AI推理。随着5G和物联网技术的普及,对实时处理能力的需求将呈指数级增长。

Programming Talk 290

计数排序的python实现和javascript实现

python实现 def count_sort(arr): max,min = findMaxAndMin(arr) space = max - min countArr = [0] * (space+1) resultArr = [0] * (space+1) for num in arr: for j in range(0,space+1): if num == j: countArr[j]+=1 for i in range(0,len(countArr)): i

技术无止境,人生仍探索。 349

2026华数杯 国际大学生数学建模竞赛 A题 如何防守直接任意球? 解题思路+模型分析+代码

2026华数杯 国际大学生数学建模竞赛 A题 如何防守直接任意球? 解题思路+模型分析+代码。基于视频数据重构进球轨迹,建立空间坐标系并进行曲线拟合,推算初始速度。建立"香蕉球"、"电梯球"、"落叶球"三种典型直接任意球轨迹的动力学模型,分析C罗进球的类型。针对C罗这类强力球员的直接任意球,提出人墙排布策略和守门员防守策略。

YOLO 663

数据结构 -js 实现计数排序

仅仅提供代码实现,原理请问度娘。 1、 数据和工具类 module.exports.list = [9, 3, 4, 32, 42, 3, 45, 33, 2, 76, 89, 34]; module.exports.swap = function (list, i, j) { let temp = list[i]; list[i] = list[j]; list[j] = temp; }; module.exports.display = function (list) { let

qq_36723759的博客 377

23、电生理与CSD分析:探索大脑活动的前沿技术

本文介绍了电生理与电流源密度(CSD)分析在探索大脑活动中的前沿应用。从电生理技术的发展现状,到局部场电位(LFPs)的起源与解释,重点阐述了CSD分析的原理、实验方法及其在绘制皮层兴奋流、解析突触输入和研究自发振荡中的广泛应用。文章还总结了该领域的优势与挑战,并展望了技术改进、多模态融合、数据分析创新及临床拓展的未来方向,展示了这些技术在揭示大脑功能机制中的关键作用。

Apple的专栏 119

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

计数排序和桶排序——python和javascript实现

计数排序 python版 不稳定计数排序 # 不稳定计数排序 def count_sort(arr): max,min = findMaxAndMin(arr) space = max - min countArr = [0] * (space+1) resultArr = [] # 计数 for num in arr: for j in range(0,space+1): if num == j: countArr[j]+=1 # 排序 for i in ran

技术无止境,人生仍探索。 443

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

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

算法导论之js实现--计数排序

计数排序 排序问题 输入:n个数的一个序列<a1, a2, ..., an> 输出:输入序列的一个排列<a1', a2', ..., an'>,满足a1' <= a2' <= ... <= an' 计数排序 计数排序(Counting sort)是一种稳定的线性时间排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中...

weixin_30659829的博客 105

VB摄像头监控

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

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

O(n)的排序算法-(计数排序、桶排序及其js实现)

总结一下,常见时间复杂度为O(n)的排序算法,以及给出js实现 非比较排序,比较排序的时间复杂度下界为O(n*logn) 计数排序(Counting sort) 适用范围:待排数组arr[N],元素处在某一范围[min,max] 核心:假设元素为整数,空间换时间,需要空间大小为O(max-min)的空间,来存储所有元素出现的次数 如果元素个数多,但是数值范围较窄时,计数排序是很节省空间的 ...

弄潮者的博客 857

在js中实现计数排序的一种方法

利用Object.keys()函数的性质实现快速计数排序,直接上代码: function countingSort(arr){ let tmp = []; let result = []; let len = arr.length; for(let i=0;i<len;i++){ if(!(tmp[arr[i]] > -1)){ tmp[arr[i]] = 1; }else{ tm

wweTHEUT的博客 309

十大经典排序算法——计数排序 (Java、JavaScript、PHP、Python、Go语言实现)

十大经典排序算法之——计数排序 本文主要介绍十大经典排序算法中的“计数排序”,并附上计数排序算法的Java、JavaScript、PHP、Python、Go语言实现。 1、十大经典排序算法介绍 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择...

菜鸟的后花园 670
上一篇: JavaScript实现快速排序
下一篇: JavaScript中的typeof与instanceof
SignalFire
博客等级 码龄7年 119粉丝 129原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值