js 计数排序的实现示例(升级版)


Posted in Javascript onJanuary 12, 2020

原版计数排序,桶的容积需要一个可以包含最小值到最大值所有可能出现的数字。这里我们可以将桶换成对象,利用对象的自动排序与不能出现相同属性名的键值对这两个特点,不需要一个有序容积的桶,随意新增键值对即可。代码如下

var ary=[23,14,12,24,53,31,53,35,46,12,62,23]

function countSort(arr){
  let obj={};
  //遍历原数组,给对象新增键值对,如果已经存在就对应的属性值++,如果不存在则新增键值对
  for(let i=0;i<arr.length;i++){
    if(!obj[arr[i]]){
      obj[arr[i]]=1;
    }else{
      obj[arr[i]]++;
    } 
    }
  let index=0;
  //遍历对象属性名,按顺序放回覆盖原数组
  for(let key in obj){
    while(obj[key]>0){
      arr[index]=Number(key);
      obj[key]--;
      index++
    }
  }
  return arr;
}

console.log(countSort(ary));

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript instanceof 与typeof使用说明
Jan 11 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
javascript 用函数语句和表达式定义函数的区别详解
Jan 06 Javascript
使用jQuery jqPlot插件绘制柱状图
Dec 18 Javascript
JavaScript中的Promise使用详解
Jun 24 Javascript
JS 全屏和退出全屏详解及实例代码
Nov 07 Javascript
javascript简单进制转换实现方法
Nov 24 Javascript
详解webpack的配置文件entry与output
Aug 21 Javascript
vue组件与复用详解
Apr 08 Javascript
微信小程序数据分析之自定义分析的实现
Aug 17 Javascript
微信小程序实现左侧滑栏过程解析
Aug 26 Javascript
layui时间控件选择时间范围的实现方法
Sep 28 Javascript
JS实现动态无缝轮播
Jan 11 #Javascript
原生js实现无缝轮播图
Jan 11 #Javascript
JS实现轮播图效果
Jan 11 #Javascript
js实现带搜索功能的下拉框
Jan 11 #Javascript
js实现select下拉框选择
Jan 11 #Javascript
js实现二级联动简单实例
Jan 11 #Javascript
jQuery实现轮播图效果demo
Jan 11 #jQuery
You might like
php查找任何页面上的所有链接的方法
2013/12/03 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
基于jQuery的树控件实现代码(asp.net+json)
2010/07/11 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
Vue render函数实战之实现tabs选项卡组件
2019/04/22 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
python递归法实现简易连连看小游戏
2020/03/25 Python
tensorflow自定义激活函数实例
2020/02/04 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
美国眼镜网:GlassesUSA
2017/09/07 全球购物
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
DBA的职责都有哪些
2012/05/16 面试题
车间工艺员岗位职责
2013/12/09 职场文书
国庆宣传标语
2014/06/30 职场文书
房地产端午节活动方案
2014/08/24 职场文书
顶岗实习协议书
2015/01/29 职场文书
防暑降温通知书
2015/04/27 职场文书
运动会3000米加油稿
2015/07/21 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python