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 相关文章推荐
firefo xml 读写实现js代码
Jun 11 Javascript
jquery select下拉框操作的一些说明
Apr 02 Javascript
收集的10个免费的jQuery相册
Feb 26 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
Nov 18 Javascript
对js关键字命名的疑问介绍
Apr 25 Javascript
javascript数组操作方法小结和3个属性详细介绍
Jul 05 Javascript
上传文件返回的json数据会被提示下载问题解决方案
Dec 03 Javascript
jquery实现的3D旋转木马特效代码分享
Aug 25 Javascript
详解JavaScript编程中正则表达式的使用
Oct 25 Javascript
基于jquery实现五星好评
Nov 18 jQuery
Nuxt.js SSR与权限验证的实现
Nov 21 Javascript
小程序自定义模板实现吸顶功能
Jan 08 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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
常用js脚本
2006/12/03 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
python根据文件大小打log日志
2014/10/09 Python
python logging 日志轮转文件不删除问题的解决方法
2016/08/02 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
python中数字是否为可变类型
2020/07/08 Python
Python爬取网页信息的示例
2020/09/24 Python
python动态规划算法实例详解
2020/11/22 Python
家具厂厂长岗位职责
2014/01/01 职场文书
安全生产投入制度
2014/01/29 职场文书
寒假家长评语大全
2014/04/16 职场文书
交通安全标语
2014/06/06 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
如何书写邀请函?
2019/06/24 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
python读取mnist数据集方法案例详解
2021/09/04 Python
Java由浅入深通关抽象类与接口(下篇)
2022/04/26 Java/Android