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判断用户浏览器插件安装情况的代码
Jan 01 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
Oct 25 Javascript
JavaScript实现Java中StringBuffer的方法
Feb 09 Javascript
javascript实现全局匹配并替换的方法
Apr 27 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
May 03 Javascript
轻量级网页遮罩层jQuery插件用法实例
Jul 31 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
关于JS中的方法是否加括号的问题
Jul 27 Javascript
Bootstrap风格的WPF样式
Dec 07 Javascript
js轮播图无缝滚动效果
Jun 17 Javascript
jquery中有哪些api jQuery主要API
Nov 20 jQuery
vue router导航守卫(router.beforeEach())的使用详解
Apr 19 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加速 eAccelerator配置和使用指南
2009/06/05 PHP
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
php实现的通用图片处理类
2015/03/24 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
2016/05/10 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
python绘制地震散点图
2019/06/18 Python
Django框架模板用法入门教程
2019/11/04 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
python Timer 类使用介绍
2020/12/28 Python
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
远程研修随笔感言
2014/02/10 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
机关保密工作承诺书
2015/05/04 职场文书
三国演义读书笔记
2015/06/25 职场文书
高一地理教学工作总结
2015/08/12 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
python实现图片批量压缩
2021/04/24 Python