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 相关文章推荐
js jquery数组介绍
Jul 15 Javascript
多种方法实现load加载完成后把图片一次性显示出来
Feb 19 Javascript
javascript中返回顶部按钮的实现
May 05 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
Angularjs实现分页和分页算法的示例代码
Dec 23 Javascript
js实现图片切换(动画版)
Dec 25 Javascript
Bootstrap table表格简单操作
Feb 07 Javascript
浅谈键盘上回车按钮的js触发事件
Feb 13 Javascript
jQuery为某个div加入行样式
Jun 09 jQuery
angularjs之$timeout指令详解
Jun 13 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
Aug 16 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
Aug 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
Codeigniter的dom类用法实例
2015/06/26 PHP
php版微信自动登录并获取昵称的方法
2016/09/23 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
28个JS验证函数收集
2010/03/02 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
RGB和YUV 多媒体编程基础详细介绍
2016/11/04 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
微信小程序实现下滑到底部自动翻页功能
2020/03/07 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
python批量提交沙箱问题实例
2014/10/08 Python
Python中super()函数简介及用法分享
2016/07/11 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
详解Python locals()的陷阱
2019/03/26 Python
python实现简单日期工具类
2019/04/24 Python
python实现按行分割文件
2019/07/22 Python
python列表生成器迭代器实例解析
2019/12/19 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
Python如何获取文件指定行的内容
2020/05/27 Python
python 生成器需注意的小问题
2020/09/29 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
html5 canvas 使用示例
2010/10/22 HTML / CSS
骨干教师培训制度
2014/01/13 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
安全标语大全
2014/06/10 职场文书
旷课检讨书
2015/01/26 职场文书
大学生实习推荐信
2015/03/27 职场文书