首页 > 其他分享 >js计数排序

js计数排序

时间:2022-09-07 14:57:15浏览次数:61  
标签:arrMin arr js 计数 let result 数组 排序 arrMax

**计数排序**
核心思想:
  找到数组中的最大数和最小数来确定生成数组的大小,根据数组值找到到数组下标与值相同的位置+1,来标识当前值有几个,最后遍历当前数组。

let arr = [1,8,6,50,34,15,12,42,48,30,11];//数组
    let arrMin = Math.min(...arr);//获取最小值
    let arrMax = Math.max(...arr);//获取最大值
    let result=[];//结果存储
    let arr_ = new Array(arrMax-arrMin+1).fill(0);//根据最大值、最小值生成纯0数组(其中arrMax-arrMin+1是为了对数组中出现负数的情况进行的处理,如果数组中没有负数直接arrMax+1即可)
    for(let i = 0 ; i < arr.length ; i++){//遍历数组在值对应的下标对数值+1,我这里作差减去最小值也是为了处理负数情况
        arr_[arr[i]-arrMin]++;
    }
    for(let j = 0;j<arr_.length;j++){//遍历arr_下标数组来生成最终结果
        for(let k = arr_[j];k>0;k--){
            result.push(j+arrMin);
        }
    }
    console.log(result,"result");

 

标签:arrMin,arr,js,计数,let,result,数组,排序,arrMax
From: https://www.cnblogs.com/lisir-blogshare/p/16665408.html

相关文章

  • 对表白墙js文件的解释
    index.js1Page({23/**4*页面的初始数据5*/6data:{7xcx_appid:"",8},9HuoquDaohangLiebiao(){......
  • common.js模块化规范
    app.js文件://require在代码执行阶段才会调用引入文件,编译(预解析)时不会执行,所以下面会报错//console.log(dep);ReferenceError:depisnotdefinedconstdep=re......
  • JS获取屏幕分辨率及当前窗口宽高等数据
    document.body.clientWidth==>BODY对象宽度document.body.clientHeight==>BODY对象高度document.documentElement.clientWidth==>可见区域宽度document.documentElem......
  • 前端JS-Day22
    箭头函数不创建this对象!图片无缝衔接:保证轮播图到最后直接跳转到第一位。 进行轮播图自动播放的时候,可以采取手动调用点击事件的方式操作。window.addEventListene......
  • 排序
    一插入排序时间复杂度O(n^2)空间复杂度O(1)稳定性:稳定//插入排序publicstaticvoidinSort(int[]arr){for(inti=0;i<arr.length;i++){......
  • JS版数据结构-链表
    链表代码随笔(JS)/**链表节点*/classNode{el=null;next=null;constructor(el=null,next=null){this.el=el;this.next=next;}}......
  • 无向图三元环 查找/计数
    理解时间复杂度\(O(M\sqrt{M})\)作用求出无向图的所有三元环过程首先要对所有的无向边进行定向,对于任何一条边,从度数大的点连向度数小的点,如果度数相同,从编号小的点......
  • array.js 说明
    文件说明:数组操作集合引入代码:import$arrayfrom'@/common/js/array.js'varlists=['桌子','椅子','电视','空调','冰箱']//从数组中随机抽取二个元素varg......
  • 引用计数的存储
    在64位中,引用计数可以直接存储在优化过的isa指针中,也可能存储在SideTable类中。在isa里面,有一个extra_rc参数其中:rc就是retainCount引用计数的意思。则has_sidetable_r......
  • js实现当前时间年-月-日 时-分-秒
    1.对Date的扩展,将Date转化为指定格式的String1.(newDate()).Format("yyyy-MM-ddhh:mm:ss.S")==>2006-07-0208:09:04.4232.(newDate()).Format("yyyy-M-dh:m:s.S......