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 - HTML的request类
Jan 09 Javascript
jquery对表单操作2
Apr 06 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
May 23 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
Nov 28 Javascript
js漂浮广告实现代码
Aug 15 Javascript
jQuery遍历json的方法(推荐)
Jun 12 Javascript
JS 终止执行的实现方法
Nov 24 Javascript
javascript垃圾收集机制的原理分析
Dec 08 Javascript
详解JavaScript中的六种错误类型
Sep 21 Javascript
利用javascript如何随机生成一定位数的密码
Sep 22 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
Sep 04 Javascript
原生js实现随机点餐效果
Dec 10 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
php学习之 认清变量的作用范围
2010/01/26 PHP
php代码运行时间查看类代码分享
2011/08/06 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
js 可拖动列表实现代码
2011/12/13 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
tensorflow之tf.record实现存浮点数数组
2020/02/17 Python
Python实现简单的2048小游戏
2021/03/01 Python
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
电钳专业个人求职信
2014/01/04 职场文书
法律专业学生的自我评价
2014/02/07 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
出纳会计岗位职责
2014/03/12 职场文书
市场营销战略计划书
2014/05/06 职场文书
个性婚礼策划方案
2014/05/17 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
夏洛特的网观后感
2015/06/15 职场文书
呼兰河传读书笔记
2015/06/30 职场文书